Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/SgChange.cc @ 715:0d8d2b7a3438
not work SgChange
author | hiroki@localhost.localdomain |
---|---|
date | Wed, 16 Dec 2009 16:29:31 +0900 |
parents | fc0227b5cb5a |
children | 6d11ecef3b74 |
rev | line source |
---|---|
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
1 #include <SDL.h> |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
2 #include "SgChange.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
3 #include "viewer_types.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
4 #include "SceneGraph.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
5 #include "SceneGraphRoot.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
6 #include "scene_graph_pack.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
7 #include "sys.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
8 #include "Func.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
9 #include "error.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
10 #include "TaskManager.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
11 #include <wchar.h> |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
12 #include "Pad.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
13 #include "Application.h" |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
14 #include "lindaapi.h" |
691 | 15 #include "global_alloc.h" |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
16 |
691 | 17 static void post2runLoop(SchedTask *s, void *viewer, void *s1); |
18 static void post2runDraw(SchedTask *s, void *viewer, void *s1); | |
715 | 19 static void post2runMove(SchedTask *s, void *viewer, void *s1); |
20 static void post2rendering(SchedTask *s, void *viewer, void *s1); | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
21 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
22 /* measure for FPS (Frame Per Second) */ |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
23 int start_time; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
24 int this_time; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
25 int frames; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
26 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
27 /* Data Pack sent to Other CPUs (ex. SPE) */ |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
28 SceneGraphPack *sgpack; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
29 PolygonPack *ppack; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
30 SpanPackPtr spackList; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
31 SpanPackPtr *spackList_ptr; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
32 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
33 int spackList_length; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
34 int spackList_length_align; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
35 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
36 SgChange::SgChange(int b, int w, int h, int _num) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
37 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
38 bpp = b; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
39 width = w; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
40 height = h; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
41 spe_num = _num; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
42 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
43 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
44 int |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
45 SgChange::get_ticks(void) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
46 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
47 int time; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
48 time = SDL_GetTicks(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
49 return time; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
50 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
51 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
52 bool |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
53 SgChange::quit_check(void) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
54 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
55 SDL_Event event; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
56 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
57 while(SDL_PollEvent(&event)) { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
58 if (event.type==SDL_QUIT) { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
59 return true; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
60 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
61 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
62 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
63 Uint8 *keys=SDL_GetKeyState(NULL); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
64 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
65 if (keys[SDLK_q] == SDL_PRESSED) { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
66 return true; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
67 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
68 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
69 return false; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
70 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
71 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
72 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
73 SgChange::quit(void) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
74 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
75 SDL_Quit(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
76 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
77 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
78 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
79 SgChange::swap_buffers(void) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
80 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
81 SDL_GL_SwapBuffers(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
82 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
83 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
84 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
85 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
86 SgChange::run_init(TaskManager *manager, Application *app) |
691 | 87 { |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
88 this->manager = manager; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
89 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
90 start_time = get_ticks(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
91 this_time = 0; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
92 frames = 0; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
93 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
94 // ココ! |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
95 sgroot_A = new SceneGraphRoot(this->width, this->height); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
96 sgroot_A->tmanager = manager; |
715 | 97 sgroot_B = new SceneGraphRoot(this->width, this->height); |
98 sgroot_B->tmanager = manager; | |
691 | 99 |
100 int size = 4; | |
101 light_xyz[0] = 0.0f; | |
102 light_xyz[1] = 0.0f; | |
103 light_xyz[2] = 0.0f; | |
104 light_xyz[3] = 0.0f; | |
105 | |
106 HTaskPtr data_load; | |
107 for(int i = 0; i < spe_num; i++) { | |
108 data_load = manager->create_task(DataLoad); | |
109 data_load->set_param(0, (memaddr)size); | |
110 data_load->set_param(1, (memaddr)LOAD_ID); | |
111 data_load->set_cpu((CPU_TYPE)((int)SPE_0 + i)); | |
112 data_load->spawn(); | |
113 } | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
114 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
115 MainLoop *mainloop = app->init_only_sg(this, this->width, this->height); |
691 | 116 |
117 mainloop->mainLoop(); | |
118 } | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
119 |
691 | 120 HTaskPtr |
121 SgChange::initLoop() | |
122 { | |
123 HTaskPtr task_next; | |
124 HTaskPtr task_tex; | |
693 | 125 |
691 | 126 sgpack = (SceneGraphPack*)manager->allocate(sizeof(SceneGraphPack)); |
127 sgpack->init(); | |
128 ppack = (PolygonPack*)manager->allocate(sizeof(PolygonPack)); | |
129 | |
130 spackList_length = (this->height + split_screen_h - 1) / split_screen_h; | |
131 spackList = (SpanPack*)manager->allocate(sizeof(SpanPack)*spackList_length); | |
132 | |
133 spackList_length_align = (spackList_length + 3)&(~3); | |
134 | |
135 spackList_ptr = | |
136 (SpanPack**)manager->allocate(sizeof(SpanPack*)*spackList_length_align); | |
137 | |
138 for (int i = 0; i < spackList_length; i++) { | |
139 spackList_ptr[i] = &spackList[i]; | |
140 } | |
141 | |
142 for (int i = 1; i <= spackList_length; i++) { | |
143 spackList[i-1].init(i*split_screen_h); | |
144 } | |
145 | |
146 task_next = manager->create_task(Dummy); | |
147 | |
148 for (int i = 0; i < spe_num; i++) { | |
149 task_tex = manager->create_task(LoadTexture); | |
150 task_tex->set_cpu((CPU_TYPE)((int)SPE_0 + i)); | |
151 task_next->wait_for(task_tex); | |
152 task_tex->spawn(); | |
153 } | |
154 | |
155 return task_next; | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
156 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
157 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
158 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
159 SgChange::mainLoop() |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
160 { |
691 | 161 HTaskPtr task_next = initLoop(); |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
162 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
163 task_next->set_post(&post2runLoop, (void *)this, 0); // set_post(function(this->run_loop()), NULL) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
164 task_next->spawn(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
165 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
166 |
691 | 167 |
168 | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
169 static void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
170 post2runLoop(SchedTask *s, void *viewer_, void *arg) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
171 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
172 SgChange *viewer = (SgChange*)viewer_; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
173 HTaskPtr task_next = viewer->manager->create_task(Dummy); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
174 viewer->run_loop(task_next); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
175 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
176 psx_sync_n(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
177 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
178 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
179 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
180 SgChange::exchange_sgroot() |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
181 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
182 SceneGraphRoot *tmp; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
183 tmp = sgroot_A; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
184 sgroot_A = sgroot_B; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
185 sgroot_B = tmp; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
186 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
187 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
188 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
189 SgChange::run_loop(HTaskPtr task_next) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
190 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
191 bool quit_flg; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
192 quit_flg = quit_check(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
193 if (quit_flg == true) { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
194 this_time = get_ticks(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
195 run_finish(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
196 return; |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
197 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
198 |
691 | 199 clean_pixels(); |
200 | |
201 for (int i = 1; i <= spackList_length; i++) { | |
202 spackList[i-1].reinit(i*split_screen_h); | |
203 } | |
204 | |
715 | 205 #if 0 |
206 exchange_sgroot(); | |
691 | 207 light_xyz_stock = sgroot_A->getLightVector(); |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
208 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
209 //printf("Sgroot = %x\n", sgroot_A); |
693 | 210 |
211 //task_next->set_post(&post2runLoop, (void *)this, 0); | |
212 //task_next->spawn(); | |
213 | |
691 | 214 rendering(task_next); |
715 | 215 #else |
216 //exchange_sgroot(); | |
217 | |
218 sgroot_A->updateControllerState(); | |
219 sgroot_A->allExecute(width, height); | |
220 light_xyz_stock = sgroot_A->getLightVector(); | |
221 | |
222 HTaskPtr loop_task = manager->create_task(Dummy); | |
223 loop_task->set_post(post2runLoop, (void *)this, 0); | |
224 | |
225 HTaskPtr draw_task = manager->create_task(Dummy); | |
226 draw_task->set_post(post2rendering, (void *)this, 0); | |
227 | |
228 HTaskPtr move_task = manager->create_task(Dummy); | |
229 move_task->set_post(post2runMove, (void *)this, 0); | |
230 | |
231 HTaskPtr dummy_task = manager->create_task(Dummy); | |
232 | |
233 this->dummy_task = dummy_task; | |
234 loop_task->wait_for(dummy_task); | |
235 loop_task->wait_for(move_task); | |
236 | |
237 move_task->spawn(); | |
238 draw_task->spawn(); | |
239 loop_task->spawn(); | |
240 #endif | |
241 } | |
242 | |
243 static void | |
244 post2runMove(SchedTask *s, void *viewer_, void *arg) | |
245 { | |
246 SgChange *viewer = (SgChange *)viewer_; | |
247 HTaskPtr task_next = viewer->manager->create_task(Dummy); | |
248 viewer->run_move(task_next); | |
249 } | |
250 | |
251 void | |
252 SgChange::run_move(HTaskPtr task_next) | |
253 { | |
254 //sgroot_A->updateControllerState(); | |
255 //sgroot_A->allExecute(width, height); | |
256 } | |
257 | |
258 static void | |
259 post2rendering(SchedTask *s, void *viewer_, void *arg) | |
260 { | |
261 SgChange *viewer = (SgChange *)viewer_; | |
262 HTaskPtr task_next = viewer->manager->create_task(Dummy); | |
263 viewer->run_draw(task_next); | |
264 | |
691 | 265 } |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
266 |
691 | 267 void |
268 SgChange::rendering(HTaskPtr task_next) | |
269 { | |
270 common_rendering(task_next); | |
271 | |
715 | 272 task_next->set_post(post2runDraw, (void*)this, 0); |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
273 task_next->spawn(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
274 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
275 |
691 | 276 void |
277 SgChange::common_rendering(HTaskPtr task_next) | |
278 { | |
279 HTaskPtr task_create_pp = manager->create_task(CreatePolygonFromSceneGraph); | |
280 | |
281 //task_create_pp->set_param(0, (memaddr)sgroot_B->getDrawSceneGraph()); | |
282 task_create_pp->set_param(0, (memaddr)sgroot_A->getDrawSceneGraph()); | |
283 task_create_pp->set_param(1, (memaddr)ppack); | |
284 | |
285 task_next->wait_for(task_create_pp); | |
286 | |
287 int range_base = spe_num; | |
288 int range = (spackList_length + range_base - 1) / range_base; | |
289 | |
290 for (int i = 0; i < range_base; i++) { | |
291 int index_start = range*i; | |
292 int index_end = (index_start + range >= spackList_length) | |
293 ? spackList_length : index_start + range; | |
294 | |
295 HTaskPtr task_create_sp = manager->create_task(CreateSpan); | |
296 | |
297 task_create_sp->set_param(0,index_start); | |
298 | |
299 task_create_sp->set_param(1,index_start*split_screen_h + 1); | |
300 task_create_sp->set_param(2,index_end*split_screen_h); | |
301 | |
302 task_create_sp->add_inData(ppack, sizeof(PolygonPack)); | |
303 task_create_sp->add_inData(spackList_ptr, | |
304 sizeof(SpanPack*)*spackList_length_align); | |
305 task_create_sp->add_inData(&spackList[index_start], sizeof(SpanPack)); | |
306 | |
307 task_next->wait_for(task_create_sp); | |
308 task_create_sp->wait_for(task_create_pp); | |
309 | |
310 task_create_sp->set_cpu(SPE_ANY); | |
311 task_create_sp->spawn(); | |
312 } | |
313 | |
314 task_create_pp->spawn(); | |
315 } | |
316 | |
715 | 317 |
691 | 318 static void |
319 post2runDraw(SchedTask *s, void *viewer_, void *arg) | |
320 { | |
321 SgChange *viewer = (SgChange *)viewer_; | |
322 HTaskPtr task_next = viewer->manager->create_task(Dummy); | |
323 viewer->run_draw(task_next); | |
324 } | |
325 | |
326 void | |
327 SgChange::run_draw(HTaskPtr task_next) // 引数に post2runLoop を入れるようにする | |
328 { | |
329 common_draw(task_next); | |
330 | |
715 | 331 #if 0 |
691 | 332 task_next->set_post(post2runLoop, (void*)this, 0); // set_post(function(this->run_loop()), NULL) |
333 task_next->spawn(); | |
715 | 334 #else |
335 this->dummy_task->wait_for(task_next); | |
336 task_next->spawn(); | |
337 this->dummy_task->spawn(); | |
338 #endif | |
691 | 339 |
340 frames++; | |
341 } | |
342 | |
343 void | |
344 SgChange::common_draw(HTaskPtr task_next) | |
345 { | |
346 HTaskPtr task_draw; | |
347 | |
348 //Light info update | |
349 HTaskPtr data_update; | |
350 HTaskPtr data_update_wait; | |
351 int size = 4; | |
352 | |
353 light_xyz[0] = light_xyz_stock[0]; | |
354 light_xyz[1] = light_xyz_stock[1]; | |
355 light_xyz[2] = light_xyz_stock[2]; | |
356 light_xyz[3] = light_xyz_stock[3]; | |
357 | |
358 data_update_wait = manager->create_task(DataUpdate); | |
359 data_update_wait->add_inData(light_xyz, sizeof(float)*size); | |
360 data_update_wait->set_param(0, size); | |
361 data_update_wait->set_param(1, LOAD_ID); | |
362 data_update_wait->set_cpu((CPU_TYPE)((int)SPE_0)); | |
363 | |
364 for (int i = 1; i < spe_num; i++) { | |
365 data_update = manager->create_task(DataUpdate); | |
366 data_update->add_inData(light_xyz, sizeof(float)*size); | |
367 data_update->set_param(0, size); | |
368 data_update->set_param(1, LOAD_ID); | |
369 data_update->set_cpu((CPU_TYPE)((int)SPE_0 + i)); | |
370 data_update_wait->wait_for(data_update); | |
371 data_update->spawn(); | |
372 } | |
373 | |
374 data_update_wait->spawn(); | |
375 | |
376 ppack->clear(); | |
377 for (int i = 0; i < spackList_length; i++) { | |
378 SpanPack *spack = &spackList[i]; | |
379 int startx = 1; | |
380 int endx = split_screen_w; | |
381 | |
382 int starty = spack->info.y_top - split_screen_h + 1; | |
383 //int endy = spack->info.y_top; | |
384 int rangey = (starty + split_screen_h - 1 > this->height) | |
385 ? this->height - starty + 1 : split_screen_h; | |
386 | |
387 while (startx < this->width) { | |
388 if (spack->info.size > 0) { | |
389 // Draw SpanPack | |
390 task_draw = manager->create_task(DrawSpan); | |
391 | |
392 task_draw->set_param(0, | |
393 (memaddr)&pixels[(startx-1) + this->width*(starty-1)]); | |
394 task_draw->set_param(1,this->width); | |
395 task_draw->set_param(2,startx); | |
396 task_draw->set_param(3,endx); | |
397 task_draw->set_param(4,rangey); | |
398 | |
399 task_draw->add_inData(spack, sizeof(SpanPack)); | |
400 | |
401 for (int i = 0; i < rangey; i++) { | |
402 task_draw->add_outData( | |
403 &pixels[(startx-1) + this->width*(starty-1 + i) ], | |
404 (endx-startx+1)*sizeof(int)); | |
405 } | |
406 } else { | |
407 // 7.7.3 SL1 Data Cache Range Set to Zero コマンド | |
408 // を使って、DMAでclearするべき... ということは、 | |
409 // それもSPEでやる方が良い? | |
410 memset(&pixels[(startx-1)+this->width*(starty-1)], | |
411 0, (this->width)*sizeof(int)*rangey); | |
412 break; | |
413 } | |
414 | |
415 task_draw->set_cpu(SPE_ANY); | |
416 task_next->wait_for(task_draw); | |
417 task_draw->wait_for(data_update_wait); | |
418 task_draw->spawn(); | |
419 | |
420 startx += split_screen_w; | |
421 endx += split_screen_w; | |
422 | |
423 if (endx > this->width) { | |
424 endx = this->width; | |
425 } | |
426 } | |
427 } | |
428 } | |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
429 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
430 void |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
431 SgChange::run_finish(void) |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
432 { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
433 if (this_time != start_time) { |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
434 printf("%f FPS\n", (((float)frames)/(this_time-start_time))*1000.0); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
435 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
436 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
437 delete sgroot_A; |
691 | 438 //delete sgroot_B; |
656
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
439 quit(); |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
440 } |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
441 |
d0b8860c17f8
remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
hiroki@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
442 /* end */ |