# HG changeset patch # User tkaito@henri # Date 1289210485 -32400 # Node ID 3191cae6f7a2175f2ed09bd939b96091c4e153ba # Parent 11dee6cf7116d510d97f9f43cb2a3429a22d36ba spe/CreatePolygonFromSceneGraph not done. diff -r 11dee6cf7116 -r 3191cae6f7a2 Renderer/Engine/spe/Makefile --- a/Renderer/Engine/spe/Makefile Tue Nov 09 18:14:58 2010 +0900 +++ b/Renderer/Engine/spe/Makefile Mon Nov 08 19:01:25 2010 +0900 @@ -6,6 +6,7 @@ SRCS_TMP = $(wildcard *.cc) SRCS_EXCLUDE = CreatePolygonFromSceneGraph.cc #CreatePolygon.cc +#SRCS_EXCLUDE = CreatePolygon.cc SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP)) OBJS = $(SRCS:.cc=.o) diff -r 11dee6cf7116 -r 3191cae6f7a2 Renderer/Engine/viewer.cc --- a/Renderer/Engine/viewer.cc Tue Nov 09 18:14:58 2010 +0900 +++ b/Renderer/Engine/viewer.cc Mon Nov 08 19:01:25 2010 +0900 @@ -662,7 +662,7 @@ } void -create_pp_task(SceneGraphPtr sg, TaskManager *manager, int spe_num, HTaskPtr task_next) +create_pp_task(SceneGraphPtr sg, TaskManager *manager, int spe_num, HTaskPtr task_next, SceneGraphRootPtr sgroot) { /* @@ -670,9 +670,6 @@ * PolygonPack の TrianglePack (空) を送る。pp->info.size の計算もここで。 * */ - //int spe_num = 6; - - PolygonPackPtr pp = (PolygonPackPtr)manager->allocate(sizeof(PolygonPack)); int sg_num = sg_drawable_num(sg); int sg_division = sg_num / spe_num; @@ -690,12 +687,11 @@ sg_division+residue,4,6,1); pptask[spe_num] = 0; - //int count= 0; int k = 0; while (sg) { if (sg->flag_drawable) { - if(count < spe_num * sg_division) { + if(k < spe_num * sg_division) { k %= spe_num-1; } else { k = spe_num; @@ -713,7 +709,6 @@ 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)); } if (sg->children != NULL) { sg = sg->children; @@ -742,9 +737,9 @@ 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_array[k]->wait_for(game_task_array); } - task_next->wait_for(task_create_pp); + task_next->wait_for(task_array[k]); } } @@ -756,7 +751,7 @@ SceneGraphPtr sg = sgroot->getDrawSceneGraph(); - create_pp_task(sg, manager, spe_num, task_next); + create_pp_task(sg, manager, spe_num, task_next, sgroot); #if SPE_CREATE_POLYGON_CHECK check_matrix(matrix_info,sg);