Mercurial > hg > Members > kono > Cerium
diff 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 |
line wrap: on
line diff
--- a/TaskManager/Test/test_render/viewer.cc Fri Sep 25 05:54:33 2009 +0900 +++ b/TaskManager/Test/test_render/viewer.cc Fri Sep 25 07:26:35 2009 +0900 @@ -11,6 +11,7 @@ #include <wchar.h> #include "Pad.h" #include "Application.h" +#include "Application/Chain.h" static void post2runLoop(void *viewer); static void post2runDraw(void *viewer); @@ -19,6 +20,8 @@ //static void post2exchange_sgroot(void *viewer); static void post2speRunLoop(void *viewer); static void post2runMoveDrawLoop(void *viewer); +static void post2runMove(void *viewer_); + /* measure for FPS (Frame Per Second) */ int start_time; @@ -295,11 +298,14 @@ } } + static void post2runMoveDrawLoop(void *viewer_) { + Viewer *viewer = (Viewer*)viewer_; - + Application *application = viewer->application; + // 同じ PPE 上なので sgroot(ポインタ) を add_param で送る。 //HTaskPtr send_key_task = viewer->manager->create_task(SEND_KEY); //send_key_task->add_param((int)sgroot); @@ -311,16 +317,15 @@ /* TASK_MOVE は外から引数で取ってくるべき */ //HTaskPtr move_task = viewer->manager->create_task(viewer->move_taskid); - HTaskPtr move_task = viewer->manager->create_task(application->move_taskid); + HTaskPtr move_task = viewer->manager->create_task(application->move_task_id()); move_task->add_inData(application->propertyPtr, application->property_size); move_task->add_outData(application->propertyPtr, application->property_size); HTaskPtr sg_update_task = viewer->manager->create_task(TASK_SG_UPDATE); - + sg_update_task->spawn(); HTaskPtr draw_task = viewer->manager->create_task(TASK_DRAW); - move_task->add_param(sgroot); - HTaskPtr switch_task = viewer->manager->create_task( TASK_SWITCH); + HTaskPtr switch_task = viewer->manager->create_task(TASK_SWITCH); switch_task->wait_for(move_task); switch_task->wait_for(draw_task); @@ -328,6 +333,7 @@ draw_task->spawn(); switch_task->set_post(post2runMoveDrawLoop, (void*)viewer); + switch_task->set_post(post2speRunLoop, (void*)viewer); switch_task->spawn(); } @@ -345,7 +351,8 @@ { HTaskPtr task_next = initLoop(); - task_next->set_post(&post2runLoop, (void *)this); // set_post(function(this->run_loop()), NULL) + task_next->set_post(post2runLoop, (void *)this); // set_post(function(this->run_loop()), NULL) + task_next->set_post(post2runMove, (void *)this); // set_post(function(this->run_loop()), NULL) task_next->spawn(); }