Mercurial > hg > Members > kono > Cerium
comparison Renderer/Engine/viewer.cc @ 762:10a8a80c2ea7
add lights
author | yutaka@henri.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sat, 06 Feb 2010 03:02:48 +0900 |
parents | 24a37fe8419a |
children | 4455e7b0caf3 |
comparison
equal
deleted
inserted
replaced
761:be6e43d977d1 | 762:10a8a80c2ea7 |
---|---|
103 if (spe_num == 0) spe_num = 1; | 103 if (spe_num == 0) spe_num = 1; |
104 | 104 |
105 sgroot = new SceneGraphRoot(this->width, this->height); | 105 sgroot = new SceneGraphRoot(this->width, this->height); |
106 sgroot->tmanager = manager; | 106 sgroot->tmanager = manager; |
107 | 107 |
108 int size = sizeof(float)*4; | 108 int size = sizeof(float)*4*4; //xyz+alfa(4) * light_num(4) |
109 int light_size = size / sizeof(float); | |
109 | 110 |
110 light_xyz_stock = (float *)manager->allocate(size); | 111 light_xyz_stock = (float *)manager->allocate(size); |
111 light_xyz = (float *)manager->allocate(size); | 112 light_xyz = (float *)manager->allocate(size); |
112 light_xyz[0] = 0.0f; | 113 |
113 light_xyz[1] = 0.0f; | 114 for (int i = 0; i < light_size ; i++) { |
114 light_xyz[2] = 0.0f; | 115 |
115 light_xyz[3] = 0.0f; | 116 light_xyz[i] = 0.0f; |
117 | |
118 } | |
116 | 119 |
117 HTaskPtr data_load; | 120 HTaskPtr data_load; |
118 data_load = manager->create_task(DataLoad); | 121 data_load = manager->create_task(DataLoad); |
119 data_load->set_param(0,(memaddr)size); | 122 data_load->set_param(0,(memaddr)size); |
120 data_load->set_param(1,(memaddr)Light); | 123 data_load->set_param(1,(memaddr)Light); |
128 data_load->set_cpu((CPU_TYPE)((int)SPE_0 + i)); | 131 data_load->set_cpu((CPU_TYPE)((int)SPE_0 + i)); |
129 data_load->spawn(); | 132 data_load->spawn(); |
130 } | 133 } |
131 | 134 |
132 MainLoop *mainloop = app->init(this, this->width, this->height); | 135 MainLoop *mainloop = app->init(this, this->width, this->height); |
133 | |
134 mainloop->mainLoop(); | 136 mainloop->mainLoop(); |
135 } | 137 } |
136 | 138 |
137 | 139 |
138 HTaskPtr | 140 HTaskPtr |
468 HTaskPtr task_draw; | 470 HTaskPtr task_draw; |
469 | 471 |
470 //task_next = manager->create_task(Dummy); | 472 //task_next = manager->create_task(Dummy); |
471 //task_next->set_post(post2runLoop, (void*)this); | 473 //task_next->set_post(post2runLoop, (void*)this); |
472 | 474 |
473 //Light info update | 475 //Light info update |
474 | 476 |
475 HTaskPtr data_update; | 477 HTaskPtr data_update; |
476 HTaskPtr data_update_wait; | 478 HTaskPtr data_update_wait; |
477 int size = sizeof(float)*4; | 479 int size = sizeof(float)*4*4; //xyz+alfa(4) * light_num(4) |
478 | 480 int light_size = size / sizeof(float); |
479 light_xyz[0] = light_xyz_stock[0]; | 481 |
480 light_xyz[1] = light_xyz_stock[1]; | 482 for (int i = 0; i < light_size; i++) { |
481 light_xyz[2] = light_xyz_stock[2]; | 483 |
482 light_xyz[3] = light_xyz_stock[3]; | 484 light_xyz[i] = light_xyz_stock[i]; |
485 | |
486 } | |
483 | 487 |
484 data_update_wait = manager->create_task(DataUpdate); | 488 data_update_wait = manager->create_task(DataUpdate); |
485 data_update_wait->add_inData(light_xyz,size); | 489 data_update_wait->add_inData(light_xyz,size); |
486 data_update_wait->set_param(0,size); | 490 data_update_wait->set_param(0,size); |
487 data_update_wait->set_param(1,Light); | 491 data_update_wait->set_param(1,Light); |