Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/viewer.h @ 724:6d11ecef3b74
Small clean up of Rendering Engine
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 19 Dec 2009 14:36:37 +0900 |
parents | e201be3f6897 |
children | 9136cf9186b6 |
rev | line source |
---|---|
283 | 1 #ifndef INCLUDED_VIEWER |
2 #define INCLUDED_VIEWER | |
3 | |
4 #include <SDL.h> | |
5 | |
507 | 6 #include "viewer_types.h" |
7 #include "TaskManager.h" | |
8 #include "KeyStat.h" | |
510 | 9 #include "MainLoop.h" |
507 | 10 #include "Application.h" |
558 | 11 #include "SceneGraphRoot.h" |
507 | 12 |
562 | 13 class SceneGraphRoot; |
14 | |
511 | 15 class Application; |
283 | 16 |
511 | 17 class Viewer : public MainLoop { |
510 | 18 |
283 | 19 public: |
510 | 20 |
283 | 21 Viewer(int bpp, int width, int height, int spenum); |
22 | |
510 | 23 virtual ~Viewer() {} |
283 | 24 |
507 | 25 Application *app; |
26 | |
27 TaskManager *manager; | |
28 key_stat *keyPtr; | |
29 HTaskPtr draw_dummy; | |
30 | |
283 | 31 /* screen info */ |
32 int width; | |
33 int height; | |
34 int bpp; | |
35 | |
36 int spe_num; | |
37 | |
38 int rgb_size[3]; | |
678
e201be3f6897
add Load light info for some spe
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
671
diff
changeset
|
39 float light_xyz[4]; |
e201be3f6897
add Load light info for some spe
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
671
diff
changeset
|
40 float *light_xyz_stock; |
e201be3f6897
add Load light info for some spe
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
671
diff
changeset
|
41 |
283 | 42 Uint32 video_flags; |
43 Uint32 *pixels; | |
44 | |
558 | 45 SceneGraphRoot *sgroot; |
46 | |
507 | 47 virtual void video_init(TaskManager *manager) = 0; |
283 | 48 void init(); |
49 | |
50 int get_ticks(); | |
51 bool quit_check(); | |
52 void quit(); | |
53 | |
54 virtual void swap_buffers(); | |
55 virtual void clean_pixels() {} | |
56 | |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
57 virtual void run_init(TaskManager *manager, Application *app); |
507 | 58 virtual void run_loop(HTaskPtr task_next); |
59 virtual void run_draw(HTaskPtr task_next); | |
60 virtual void run_finish(); | |
61 virtual void run_move(HTaskPtr task_next); | |
62 virtual void run_collision(); | |
63 virtual void rendering(HTaskPtr task_next); | |
64 virtual void common_draw(HTaskPtr task_next); | |
65 virtual void common_rendering(HTaskPtr task_next); | |
66 | |
67 virtual void spe_rendering(HTaskPtr task_next); | |
68 virtual void spe_draw(HTaskPtr task_next); | |
69 //virtual void exchange_sgroot(TaskManager *manager); | |
70 | |
71 void getKey(); | |
72 void get_send_controll(); | |
511 | 73 |
558 | 74 // void createFromXMLfile(const char *file); |
75 // SceneGraph *createSceneGraph(int id); | |
76 // SceneGraph *createSceneGraph(); | |
77 // void setSceneData(SceneGraph *g); | |
512 | 78 void mainLoop(); |
511 | 79 |
671
f42b303044f7
fix several Renderer/Test with (void*)sgroot.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
589
diff
changeset
|
80 void createFromXMLmemory(SceneGraph * node, char *data, int len) |
f42b303044f7
fix several Renderer/Test with (void*)sgroot.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
589
diff
changeset
|
81 { |
f42b303044f7
fix several Renderer/Test with (void*)sgroot.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
589
diff
changeset
|
82 sgroot->createFromXMLmemory(manager, node, data, len); |
f42b303044f7
fix several Renderer/Test with (void*)sgroot.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
589
diff
changeset
|
83 } |
f42b303044f7
fix several Renderer/Test with (void*)sgroot.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
589
diff
changeset
|
84 |
558 | 85 void createFromXMLfile(const char *file) |
86 { | |
87 sgroot->createFromXMLfile(manager, file); | |
88 } | |
89 | |
90 SceneGraph * createSceneGraph(int id) | |
91 { | |
92 return sgroot->createSceneGraph(id); | |
93 } | |
94 | |
562 | 95 SceneGraph * createSceneGraph(const char *id) |
96 { | |
97 return sgroot->createSceneGraph(id); | |
98 } | |
99 | |
100 int getSgid(const char *id) | |
101 { | |
102 return sgroot->getSgid(id); | |
103 } | |
104 | |
558 | 105 SceneGraph * createSceneGraph() |
106 { | |
107 return sgroot->createSceneGraph(); | |
108 } | |
109 | |
110 void setSceneData(SceneGraph *g) | |
111 { | |
112 sgroot->setSceneData(g); | |
113 } | |
114 | |
589 | 115 int getLast() |
116 { | |
117 return sgroot->getLast(); | |
118 } | |
119 | |
120 | |
558 | 121 |
122 | |
507 | 123 private: |
124 HTaskPtr initLoop(); | |
125 | |
283 | 126 }; |
127 | |
507 | 128 #define default_sdl_flag SDL_INIT_TIMER | SDL_INIT_JOYSTICK |
129 | |
130 | |
283 | 131 #endif |
132 |