diff Renderer/Engine/viewer.cc @ 1026:55f3c5976959

create_pp_task fix.
author tkaito
date Tue, 09 Nov 2010 18:14:28 +0900
parents 360f8eba78f1
children 3191cae6f7a2
line wrap: on
line diff
--- a/Renderer/Engine/viewer.cc	Sun Nov 07 04:24:24 2010 +0900
+++ b/Renderer/Engine/viewer.cc	Tue Nov 09 18:14:28 2010 +0900
@@ -690,7 +690,7 @@
 						   sg_division+residue,4,6,1);
   pptask[spe_num] = 0;
 
-  int count= 0;
+  //int count= 0;
   int k = 0;
 
   while (sg) {
@@ -713,7 +713,7 @@
       pptask[k]->set_param(2,(memaddr)sg->texture_info.t_h);
       pptask[k]->set_param(3,(memaddr)sg->texture_info.scale_max);
       
-      pptask[k]->set_outData(0, &pp->tri[pp->info.size++], sizeof(TrianglePack));
+      //pptask[k]->set_outData(0, &pp->tri[pp->info.size++], sizeof(TrianglePack));
     }
     if (sg->children != NULL) {
       sg = sg->children;
@@ -734,9 +734,18 @@
 	}
       }
     }
-    count++;
+    k++;
   }
-
+  for (int k = 0; k < spe_num; k++) {
+    task_array[k]->spawn_task_array(pptask[k]->next());
+    task_array[k]->set_cpu(SPE_ANY);
+    task_array[k]->spawn();
+    if (sgroot->gtask_array != NULL) {
+      HTaskPtr game_task_array = sgroot->gtask_array->get_task_array();
+      task_create_pp->wait_for(game_task_array);
+    }
+    task_next->wait_for(task_create_pp);	
+  }
 }
 
 void