annotate Renderer/Engine/viewer.h @ 589:f674ca0fb76d

add viwer.cc
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 30 Oct 2009 18:39:12 +0900
parents a5fda4e51498
children f42b303044f7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
1 #ifndef INCLUDED_VIEWER
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
2 #define INCLUDED_VIEWER
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
3
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
4 #include <SDL.h>
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
5
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
6 #include "viewer_types.h"
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
7 #include "TaskManager.h"
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
8 #include "KeyStat.h"
510
97e1b0346597 continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 509
diff changeset
9 #include "MainLoop.h"
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
10 #include "Application.h"
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
11 #include "SceneGraphRoot.h"
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
12
562
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
13 class SceneGraphRoot;
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
14
511
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 510
diff changeset
15 class Application;
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
16
511
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 510
diff changeset
17 class Viewer : public MainLoop {
510
97e1b0346597 continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 509
diff changeset
18
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
19 public:
510
97e1b0346597 continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 509
diff changeset
20
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
21 Viewer(int bpp, int width, int height, int spenum);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
22
510
97e1b0346597 continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 509
diff changeset
23 virtual ~Viewer() {}
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
24
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
25 Application *app;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
26
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
27 TaskManager *manager;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
28 key_stat *keyPtr;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
29 HTaskPtr draw_dummy;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
30
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
31 /* screen info */
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
32 int width;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
33 int height;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
34 int bpp;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
35
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
36 int spe_num;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
37
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
38 int rgb_size[3];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
39 Uint32 video_flags;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
40 Uint32 *pixels;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
41
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
42 SceneGraphRoot *sgroot;
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
43
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
44 virtual void video_init(TaskManager *manager) = 0;
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
45 void init();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
46
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
47 int get_ticks();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
48 bool quit_check();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
49 void quit();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
50
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
51 virtual void swap_buffers();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
52 virtual void clean_pixels() {}
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
53
509
8148c81d2660 Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 507
diff changeset
54 virtual void run_init(TaskManager *manager, Application *app);
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
55 virtual void run_loop(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
56 virtual void run_draw(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
57 virtual void run_finish();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
58 virtual void run_move(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
59 virtual void run_collision();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
60 virtual void rendering(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
61 virtual void common_draw(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
62 virtual void common_rendering(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
63
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
64 virtual void spe_rendering(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
65 virtual void spe_draw(HTaskPtr task_next);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
66 //virtual void exchange_sgroot(TaskManager *manager);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
67
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
68 void getKey();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
69 void get_send_controll();
511
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 510
diff changeset
70
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
71 // void createFromXMLfile(const char *file);
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
72 // SceneGraph *createSceneGraph(int id);
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
73 // SceneGraph *createSceneGraph();
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
74 // void setSceneData(SceneGraph *g);
512
01b64f21405e ball_bound worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 511
diff changeset
75 void mainLoop();
511
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 510
diff changeset
76
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
77 void createFromXMLfile(const char *file)
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
78 {
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
79 sgroot->createFromXMLfile(manager, file);
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
80 }
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
81
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
82 SceneGraph * createSceneGraph(int id)
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
83 {
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
84 return sgroot->createSceneGraph(id);
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
85 }
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
86
562
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
87 SceneGraph * createSceneGraph(const char *id)
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
88 {
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
89 return sgroot->createSceneGraph(id);
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
90 }
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
91
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
92 int getSgid(const char *id)
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
93 {
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
94 return sgroot->getSgid(id);
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
95 }
a5fda4e51498 name search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 558
diff changeset
96
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
97 SceneGraph * createSceneGraph()
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
98 {
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
99 return sgroot->createSceneGraph();
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
100 }
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
101
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
102 void setSceneData(SceneGraph *g)
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
103 {
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
104 sgroot->setSceneData(g);
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
105 }
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
106
589
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
107 int getLast()
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
108 {
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
109 return sgroot->getLast();
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
110 }
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
111
f674ca0fb76d add viwer.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 562
diff changeset
112
558
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
113
b05bae017029 boss1_action
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 512
diff changeset
114
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
115 private:
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
116 HTaskPtr initLoop();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
117 void speLoop();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
118
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
119 };
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
120
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
121 #define default_sdl_flag SDL_INIT_TIMER | SDL_INIT_JOYSTICK
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
122
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
123
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
124 #endif
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
125