Mercurial > hg > Game > Cerium
comparison Renderer/Engine/Light.cc @ 1406:8587ee89ef79 draft
fix Light.
author | taiki |
---|---|
date | Fri, 17 Feb 2012 17:32:50 +0900 |
parents | aafad9d18a2c |
children | acfa426b277e |
comparison
equal
deleted
inserted
replaced
1405:aafad9d18a2c | 1406:8587ee89ef79 |
---|---|
1 #include "Light.h" | 1 #include "Light.h" |
2 #include "Func.h" | |
2 | 3 |
3 void | 4 void |
4 Light::init() | 5 Light::init() |
5 { | 6 { |
6 int light_num = 4; | 7 int light_num = 4; |
16 | 17 |
17 for(int i = 0;;) { | 18 for(int i = 0;;) { |
18 HTaskPtr data_load = manager->create_task(DataAllocate); | 19 HTaskPtr data_load = manager->create_task(DataAllocate); |
19 data_load->set_param(0,(memaddr)3); // num of allocate block | 20 data_load->set_param(0,(memaddr)3); // num of allocate block |
20 data_load->set_param(1,(memaddr)(sizeof(float)*4*light_num)); // 1st allocate size | 21 data_load->set_param(1,(memaddr)(sizeof(float)*4*light_num)); // 1st allocate size |
21 data_load->set_param(2,(memaddr)Light); // 1st id | 22 data_load->set_param(2,(memaddr)LightData); // 1st id |
22 data_load->set_param(3,(memaddr)(light_num * sizeof(int))); // 2nd size | 23 data_load->set_param(3,(memaddr)(light_num * sizeof(int))); // 2nd size |
23 data_load->set_param(4,(memaddr)LightSwitch); // 2nd id | 24 data_load->set_param(4,(memaddr)LightSwitch); // 2nd id |
24 data_load->set_param(5,(memaddr)16); // 3rd size | 25 data_load->set_param(5,(memaddr)16); // 3rd size |
25 data_load->set_param(6,(memaddr)LightSysSwitch); // 3rd id | 26 data_load->set_param(6,(memaddr)LightSysSwitch); // 3rd id |
26 data_load->set_cpu((CPU_TYPE)((int)SPE_0 + i)); | 27 data_load->set_cpu((CPU_TYPE)((int)SPE_0 + i)); |
57 light_sysswitch_stock = sgroot->getLightSysSwitch(); | 58 light_sysswitch_stock = sgroot->getLightSysSwitch(); |
58 | 59 |
59 return true; | 60 return true; |
60 } | 61 } |
61 | 62 |
62 void | 63 HTaskPtr |
63 Light::update(HTaskPtr task_next) | 64 Light::update(HTaskPtr task_next) |
64 { | 65 { |
65 | 66 |
66 //task_next = manager->create_task(Dummy); | 67 //task_next = manager->create_task(Dummy); |
67 //task_next->set_post(post2runLoop, (void*)this); | 68 //task_next->set_post(post2runLoop, (void*)this); |
86 HTask *data_update_wait = manager->create_task(Dummy); | 87 HTask *data_update_wait = manager->create_task(Dummy); |
87 for (int i = 0; ;) { | 88 for (int i = 0; ;) { |
88 | 89 |
89 HTaskPtr data_update = manager->create_task(DataUpdate); | 90 HTaskPtr data_update = manager->create_task(DataUpdate); |
90 data_update->set_param(0,3); | 91 data_update->set_param(0,3); |
91 data_update->set_param(1,Light); // GlobalSet ID base | 92 data_update->set_param(1,LightData); // GlobalSet ID base |
92 data_update->set_inData(0,light_xyz,size); // Light | 93 data_update->set_inData(0,light_xyz,size); // Light |
93 data_update->set_inData(1,light_switch,light_num * sizeof(int)); // LightSwitch = Light+1 | 94 data_update->set_inData(1,light_switch,light_num * sizeof(int)); // LightSwitch = Light+1 |
94 data_update->set_inData(2,light_sysswitch,16); // LightSysSwitch = Light+2 | 95 data_update->set_inData(2,light_sysswitch,16); // LightSysSwitch = Light+2 |
95 data_update->set_cpu((CPU_TYPE)(SPE_0+i)); | 96 data_update->set_cpu((CPU_TYPE)(SPE_0+i)); |
96 data_update_wait->wait_for(data_update); | 97 data_update_wait->wait_for(data_update); |
97 data_update->spawn(); | 98 data_update->spawn(); |
98 if (i==CPU_PPE) break; | 99 if (i==CPU_PPE) break; |
99 if (i==spe_num-1) i=CPU_PPE; | 100 if (i==spe_num-1) i=CPU_PPE; |
100 i++; | 101 i++; |
101 } | 102 } |
103 return data_update_wait; | |
102 } | 104 } |