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);