changeset 401:c29cbad1150d

fix viewer.cpp
author game@henri.cr.ie.u-ryukyu.ac.jp
date Mon, 21 Sep 2009 19:57:38 +0900
parents 4bea73c83c35
children 96608899d1d3
files TaskManager/Test/test_render/viewer.cpp
diffstat 1 files changed, 5 insertions(+), 169 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/Test/test_render/viewer.cpp	Mon Sep 21 18:03:31 2009 +0900
+++ b/TaskManager/Test/test_render/viewer.cpp	Mon Sep 21 19:57:38 2009 +0900
@@ -40,7 +40,6 @@
 
 Viewer::Viewer(int b, int w, int h, int _num)
 {
-    //this->manager = manager;
     bpp = b;
     width = w;
     height = h;
@@ -240,22 +239,9 @@
 {
     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->spawn();
     // TASK_INIT_TEXTURE が全て終わったら DUMMY_TASK が Viewer::run_loop() を呼ぶ
-
-
-    /*
-    HTaskPtr move_task = manager->create_task(RUN_MOVE_TASK);
-    HTaskPtr draw_task = manager->create_task(RUN_DRAW_TASK);
-    move_task->spawn();
-    draw_task->spawn();
-    
-    task_next->wait_for(RUN_MOVE_TASK);
-    task_next->wait_for(RUN_DRAW_TASK);
-    task_next->set_post(post2runExchange, (void *)this);
-    task_next->spawn();
-    */
 }
 
 
@@ -302,12 +288,10 @@
 void 
 Viewer::rendering(HTaskPtr task_next)
 {
-    printf("start rendering\n");
-    HTaskPtr task_create_pp = NULL;
-    HTaskPtr task_create_sp = NULL;
+    HTaskPtr task_create_pp = manager->create_task(TASK_CREATE_PP2);
     
     // SceneGraph(木構造) -> PolygonPack
-    task_create_pp = manager->create_task(TASK_CREATE_PP2);
+
     task_create_pp->add_param((uint32)sgroot->getDrawSceneGraph());
     task_create_pp->add_param((uint32)ppack);
 
@@ -317,14 +301,12 @@
     // 切り上げのつもり
     int range = (spackList_length + range_base - 1) / range_base;
 
-    printf("rendering 1\n");
-
     for (int i = 0; i < range_base; i++) {
         int index_start = range*i;
         int index_end = (index_start + range >= spackList_length)
             ? spackList_length : index_start + range;
 
-        task_create_sp = manager->create_task(TASK_CREATE_SPAN);
+	HTaskPtr task_create_sp = manager->create_task(TASK_CREATE_SPAN);
         task_create_sp->add_inData(ppack, sizeof(PolygonPack));
         task_create_sp->add_inData(spackList_ptr,
                                    sizeof(SpanPack*)*spackList_length_align);
@@ -356,9 +338,8 @@
     // Barrier 同期
     // run_draw() を呼ぶ post2runDraw
     task_next->set_post(post2runDraw, (void*)this); // set_post(function(this->run_draw()), NULL)
-    printf("rendering 2\n");
     task_next->spawn();
-    printf("task_next\n");
+
     // TASK_CREATE_SPAN が全て終わったら DUMMY_TASK が Viewer::run_draw() を呼ぶ
 }
 
@@ -394,154 +375,12 @@
     //sgroot->checkRemove();
 
     // ここから下は Rendering という関数にする
-    printf("run_loop\n");
     rendering(task_next);
 }
 
-/*
-void
-Viewer::run_loop(HTaskPtr task_next)
-{
-    HTaskPtr task_create_pp  = NULL;
-    HTaskPtr task_create_sp  = NULL;
-    //HTaskPtr task_next;
-    bool quit_flg;
-
-    quit_flg = quit_check();
-
-    if (quit_flg == true) {
-        this_time = get_ticks();
-        run_finish();
-        return;
-    }
-
-    clean_pixels();
-
-    for (int i = 1; i <= spackList_length; i++) {
-        spackList[i-1].reinit(i*split_screen_h);
-    }
-
-    //task_next = manager->create_task(TASK_DUMMY);
-
-    sgroot->updateControllerState();
-    sgroot->allExecute(width, height);
-
-    // SceneGraph(木構造) -> PolygonPack                                                                                    
-    task_create_pp = manager->create_task(TASK_CREATE_PP2);
-    task_create_pp->add_param((uint32)sgroot->getDrawSceneGraph());
-    task_create_pp->add_param((uint32)ppack);
-
-    task_next->wait_for(task_create_pp);
-    int range_base = spe_num;
-    // 切り上げのつもり                                                                                                     
-    int range = (spackList_length + range_base - 1) / range_base;
-    for (int i = 0; i < range_base; i++) {
-        int index_start = range*i;
-        int index_end = (index_start + range >= spackList_length)
-            ? spackList_length : index_start + range;
-
-        task_create_sp = manager->create_task(TASK_CREATE_SPAN);
-        task_create_sp->add_inData(ppack, sizeof(PolygonPack));
-        task_create_sp->add_inData(spackList_ptr,
-                                   sizeof(SpanPack*)*spackList_length_align);
-        task_create_sp->add_inData(&spackList[index_start], sizeof(SpanPack));
-
-        task_create_sp->add_param(index_start);
-
-        task_create_sp->add_param(index_start*split_screen_h + 1);
-        task_create_sp->add_param(index_end*split_screen_h);
-
-        task_next->wait_for(task_create_sp);
-        task_create_sp->wait_for(task_create_pp);
-
-        task_create_sp->set_cpu(SPE_ANY);
-        task_create_sp->spawn();
-    }
-
-    task_create_pp->spawn();
-
-    // Barrier 同期                                                                                                         
-    task_next->set_post(post2runDraw, NULL); // set_post(function(this->run_draw()), NULL)                                  
-    task_next->spawn();
-    // TASK_CREATE_SPAN が全て終わったら DUMMY_TASK が Viewer::run_draw() を呼ぶ                                            
-}
-*/
-
-
-/*
-void
-Viewer::run_loop(HTaskPtr task_next)
-{
-    HTaskPtr task_create_pp  = NULL;
-    HTaskPtr task_create_sp  = NULL;
-    HTaskPtr task_next;
-    bool quit_flg;
-
-    quit_flg = quit_check();
-
-    if (quit_flg == true) {
-        this_time = get_ticks();
-        run_finish();
-        return;
-    }
-
-    clean_pixels();
-
-    for (int i = 1; i <= spackList_length; i++) {
-        spackList[i-1].reinit(i*split_screen_h);
-    }
-
-    task_next = manager->create_task(TASK_DUMMY);
-
-    sgroot->updateControllerState();
-    sgroot->allExecute(width, height);
-
-    // SceneGraph(木構造) -> PolygonPack                                                                                    
-    task_create_pp = manager->create_task(TASK_CREATE_PP2);
-    task_create_pp->add_param((uint32)sgroot->getDrawSceneGraph());
-    task_create_pp->add_param((uint32)ppack);
-
-    task_next->wait_for(task_create_pp);
-
-    int range_base = spe_num;
-    // 切り上げのつもり               
-    int range = (spackList_length + range_base - 1) / range_base;
-
-    for (int i = 0; i < range_base; i++) {
-        int index_start = range*i;
-        int index_end = (index_start + range >= spackList_length)
-            ? spackList_length : index_start + range;
-
-        task_create_sp = manager->create_task(TASK_CREATE_SPAN);
-        task_create_sp->add_inData(ppack, sizeof(PolygonPack));
-        task_create_sp->add_inData(spackList_ptr,
-                                   sizeof(SpanPack*)*spackList_length_align);
-        task_create_sp->add_inData(&spackList[index_start], sizeof(SpanPack));
-
-        task_create_sp->add_param(index_start);
-        task_create_sp->add_param(index_start*split_screen_h + 1);
-        task_create_sp->add_param(index_end*split_screen_h);
-
-        task_next->wait_for(task_create_sp);
-        task_create_sp->wait_for(task_create_pp);
-
-        task_create_sp->set_cpu(SPE_ANY);
-        task_create_sp->spawn();
-    }
-
-    task_create_pp->spawn();
-
-    // Barrier 同期                                                                                                         
-    task_next->set_post(post2runDraw, NULL); // set_post(function(this->run_draw()), NULL)                                  
-    task_next->spawn();
-    // TASK_CREATE_SPAN が全て終わったら DUMMY_TASK が Viewer::run_draw() を呼ぶ                                            
-}
-*/
-
 static void 
 post2runDraw(void *viewer_)
 {
-    printf("post2runDraw 1\n");
     Viewer *viewer = (Viewer*)viewer_;
     HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY);
     viewer->run_draw(task_next);
@@ -551,7 +390,6 @@
 void
 Viewer::run_draw(HTaskPtr task_next) // 引数に post2runLoop を入れるようにする
 {
-    printf("start run_draw\n");
     HTaskPtr task_draw;
 
     //task_next = manager->create_task(TASK_DUMMY);
@@ -583,7 +421,6 @@
 		break;
             }
 
-	    task_next->spawn();
             task_draw->add_param(startx);
             task_draw->add_param(endx);
             task_draw->add_param(rangey);
@@ -606,7 +443,6 @@
     // TASK_DRAW_SPAN が全て終わったら DUMMY_TASK が Viewer::run_loop() を呼ぶ    
 
     frames++;
-    printf("end run_draw\n");
 }
 
 void