Mercurial > hg > Members > kono > Cerium
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_) |