comparison TaskManager/Test/test_render/viewer.cc @ 445:579d71efbd70

test_render error fixed
author game@henri.cr.ie.u-ryukyu.ac.jp
date Fri, 25 Sep 2009 07:26:35 +0900
parents cf2704424cc0
children 4f11245e3504
comparison
equal deleted inserted replaced
444:bd81b461d2fc 445:579d71efbd70
9 #include "error.h" 9 #include "error.h"
10 #include "TaskManager.h" 10 #include "TaskManager.h"
11 #include <wchar.h> 11 #include <wchar.h>
12 #include "Pad.h" 12 #include "Pad.h"
13 #include "Application.h" 13 #include "Application.h"
14 #include "Application/Chain.h"
14 15
15 static void post2runLoop(void *viewer); 16 static void post2runLoop(void *viewer);
16 static void post2runDraw(void *viewer); 17 static void post2runDraw(void *viewer);
17 static void post2speRunLoop(void *viewer); 18 static void post2speRunLoop(void *viewer);
18 //static void post2runMove(void *viewer); 19 //static void post2runMove(void *viewer);
19 //static void post2exchange_sgroot(void *viewer); 20 //static void post2exchange_sgroot(void *viewer);
20 static void post2speRunLoop(void *viewer); 21 static void post2speRunLoop(void *viewer);
21 static void post2runMoveDrawLoop(void *viewer); 22 static void post2runMoveDrawLoop(void *viewer);
23 static void post2runMove(void *viewer_);
24
22 25
23 /* measure for FPS (Frame Per Second) */ 26 /* measure for FPS (Frame Per Second) */
24 int start_time; 27 int start_time;
25 int this_time; 28 int this_time;
26 int frames; 29 int frames;
293 } else { 296 } else {
294 keyPtr->circle = NONE; 297 keyPtr->circle = NONE;
295 } 298 }
296 } 299 }
297 300
301
298 static void 302 static void
299 post2runMoveDrawLoop(void *viewer_) 303 post2runMoveDrawLoop(void *viewer_)
300 { 304 {
305
301 Viewer *viewer = (Viewer*)viewer_; 306 Viewer *viewer = (Viewer*)viewer_;
302 307 Application *application = viewer->application;
308
303 // 同じ PPE 上なので sgroot(ポインタ) を add_param で送る。 309 // 同じ PPE 上なので sgroot(ポインタ) を add_param で送る。
304 //HTaskPtr send_key_task = viewer->manager->create_task(SEND_KEY); 310 //HTaskPtr send_key_task = viewer->manager->create_task(SEND_KEY);
305 //send_key_task->add_param((int)sgroot); 311 //send_key_task->add_param((int)sgroot);
306 // set input data -> viewer keyPtr 312 // set input data -> viewer keyPtr
307 viewer->getKey(); 313 viewer->getKey();
309 update_key->add_inData(viewer->keyPtr, sizeof(key_stat)); 315 update_key->add_inData(viewer->keyPtr, sizeof(key_stat));
310 update_key->spawn(); 316 update_key->spawn();
311 317
312 /* TASK_MOVE は外から引数で取ってくるべき */ 318 /* TASK_MOVE は外から引数で取ってくるべき */
313 //HTaskPtr move_task = viewer->manager->create_task(viewer->move_taskid); 319 //HTaskPtr move_task = viewer->manager->create_task(viewer->move_taskid);
314 HTaskPtr move_task = viewer->manager->create_task(application->move_taskid); 320 HTaskPtr move_task = viewer->manager->create_task(application->move_task_id());
315 move_task->add_inData(application->propertyPtr, application->property_size); 321 move_task->add_inData(application->propertyPtr, application->property_size);
316 move_task->add_outData(application->propertyPtr, application->property_size); 322 move_task->add_outData(application->propertyPtr, application->property_size);
317 323
318 HTaskPtr sg_update_task = viewer->manager->create_task(TASK_SG_UPDATE); 324 HTaskPtr sg_update_task = viewer->manager->create_task(TASK_SG_UPDATE);
319 325 sg_update_task->spawn();
320 HTaskPtr draw_task = viewer->manager->create_task(TASK_DRAW); 326 HTaskPtr draw_task = viewer->manager->create_task(TASK_DRAW);
321 move_task->add_param(sgroot); 327
322 328 HTaskPtr switch_task = viewer->manager->create_task(TASK_SWITCH);
323 HTaskPtr switch_task = viewer->manager->create_task( TASK_SWITCH);
324 329
325 switch_task->wait_for(move_task); 330 switch_task->wait_for(move_task);
326 switch_task->wait_for(draw_task); 331 switch_task->wait_for(draw_task);
327 move_task->spawn(); 332 move_task->spawn();
328 draw_task->spawn(); 333 draw_task->spawn();
329 334
330 switch_task->set_post(post2runMoveDrawLoop, (void*)viewer); 335 switch_task->set_post(post2runMoveDrawLoop, (void*)viewer);
336 switch_task->set_post(post2speRunLoop, (void*)viewer);
331 switch_task->spawn(); 337 switch_task->spawn();
332 338
333 } 339 }
334 340
335 static void 341 static void
343 void 349 void
344 Viewer::mainInit() 350 Viewer::mainInit()
345 { 351 {
346 HTaskPtr task_next = initLoop(); 352 HTaskPtr task_next = initLoop();
347 353
348 task_next->set_post(&post2runLoop, (void *)this); // set_post(function(this->run_loop()), NULL) 354 task_next->set_post(post2runLoop, (void *)this); // set_post(function(this->run_loop()), NULL)
355 task_next->set_post(post2runMove, (void *)this); // set_post(function(this->run_loop()), NULL)
349 task_next->spawn(); 356 task_next->spawn();
350 } 357 }
351 358
352 static void 359 static void
353 post2runMove(void *viewer_) 360 post2runMove(void *viewer_)