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 }