# HG changeset patch # User koba # Date 1291915237 -32400 # Node ID 6bea374ee604c181282b3ec574e981ea3fbeb489 # Parent 3fb8a6a34e241f7d0d677cdb252f11c5a792009d global alloc test. diff -r 3fb8a6a34e24 -r 6bea374ee604 Func.h --- a/Func.h Tue Oct 26 17:28:56 2010 +0900 +++ b/Func.h Fri Dec 10 02:20:37 2010 +0900 @@ -1,51 +1,14 @@ +// Task ID enum { #include "SysTasks.h" #include "RenderingTasks.h" - TITLE_MOVE, - CRAB_MOVE, - TITLE_COLL, - MOVE_00, - MOVE_01, - MOVE_02, - MOVE_03, - MOVE_04, - MOVE_05, - MOVE_06, - MOVE_07, - MOVE_08, - MOVE_09, - MOVE_10, - MOVE_11, - MOVE_12, - MOVE_13, - MOVE_20, - MOVE_21, - MOVE_22, - MOVE_23, - MOVE_24, - MOVE_25, - MOVE_26, - MOVE_27, - MOVE_28, - MOVE_29, - MOVE_30, - MOVE_31, - MOVE_32, - MOVE_33, - MOVE_34, - MOVE_35, - MOVE_40, - MOVE_41, - MOVE_400, - MOVE_401, - MOVE_402, - MOVE_410, - MOVE_411, - MOVE_500, - MOVE_501, - MOVE_600, - MOVE_601, - MOVE_602, - ASTEROID, +#include "game_task.h" +}; +// global alloc ID +enum { +#include "RenderingGlobal.h" +#include "global_alloc.h" +#include "KeyID.h" +#include "global_id.h" }; diff -r 3fb8a6a34e24 -r 6bea374ee604 character_id.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/character_id.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,117 @@ +#ifndef INCLUDE_CHARACTOR_ID +#define INCLUDE_CHARACTOR_ID + +typedef enum { + PLAYER_LEFTMOVE = 1, + PLAYER_TURNTOLEFT = 2, + PLAYER_IDLE = 3, + PLAYER_TURNTORIGHT = 4, + PLAYER_RIGHTMOVE = 5, + BLUEBULLET_LEFT = 6, + BLUEBULLET_RIGHT = 7, + REDBULLET = 8, + LONGLASER = 9, + GAUGE_PANEL = 10, + OFFENSIVEPOWER_GAUGE = 11, + BURNER = 12, + LOCKON_SIGHT = 13, + SPECIAL_LASERGAUGE = 14, + DIFFENSIVEPOWER_GAUGE = 15, + GREENBULLET = 16, + BULEBARRIER = 17, + FONT_PLAYER_1 = 18, + FONT_GAMEOVER = 19, + FONT_0 = 20, + FONT_1 = 21, + FONT_2 = 22, + FONT_3 = 23, + FONT_4 = 24, + FONT_5 = 25, + FONT_6 = 26, + FONT_7 = 27, + FONT_8 = 28, + FONT_9 = 29, + REDBOMB_ANIM_0 = 30, + REDBOMB_ANIM_1 = 31, + REDBOMB_ANIM_2 = 32, + REDBOMB_ANIM_3 = 33, + REDBOMB_ANIM_4 = 34, + REDBOMB_ANIM_5 = 35, + REDBOMB_ANIM_6 = 36, + REDBOMB_ANIM_7 = 37, + FONT_HIGE = 38, + GREENBOMB_ANIM_0 = 40, + GREENBOMB_ANIM_1 = 41, + GREENBOMB_ANIM_2 = 42, + GREENBOMB_ANIM_3 = 43, + GREENBOMB_ANIM_4 = 44, + GREENBOMB_ANIM_5 = 45, + GREENBOMB_ANIM_6 = 46, + GREENBOMB_ANIM_7 = 47, + INFLATION_GAUGE = 48, + INFLATION_METER = 49, + ENEMY_GREENCRAB = 50, + ENEMY_PLANE = 51, + ENEMY_REDBULLET = 52, + FONT_PUSHSTART = 53, + BOSS1_ORGAN = 54, + ENEMY_LASER = 55, + ENEMY_BLUEBULLET = 56, + ENEMY_LIGHTNING = 57, + ENEMY_LASERSPLOSH_0 = 58, + ENEMY_LASERSPLOSH_1 = 59, + ENEMY_LASERSPLOSH_2 = 60, + ENEMY_LASERSPLOSH_3 = 61, + ASTEROID = 62, + ORBITMACHINE = 63, + BOSS2_BODY = 64, + BOSS2_RIGHTSHOULDER = 65, + BOSS2_LEFTSHOULDER = 66, + BOSS2_RIGHTARM = 67, + BOSS2_LEFTARM = 68, + BOSS2_BATTERY = 69, + BOSS2_OPENBATTERY = 70, + BOSS2_BROKENHATCH = 71, + BOSS2_DUMMY = 72, + BOSS2_RIGHTSHOULDERUP = 73, + BOSS2_LEFTSHOULDERUP = 74, + BOSS2_LEFTSHOULDERGIRD = 75, + BOSS2_RIGHTARMBATTERY = 76, + BOSS2_LEFTARMBATTERY = 77, + BOSS2_RIGHTHAND = 78, + BOSS2_RIGHTPALM = 79, + BOSS2_LEFTHAND = 80, + BOSS2_LEFTPALM = 81, + PLAYER_LASERSPLOSH_0 = 90, + PLAYER_LASERSPLOSH_1 = 91, + PLAYER_LASERSPLOSH_2 = 92, + PLAYER_LASERSPLOSH_3 = 93, + BOSS_POWERGAUGE = 94, + BLACKHOLE = 100, + FONT_DOYOUCONTINUE = 110, + FONT_ALLSTAGECLEAR = 111, + FONT_REST = 112, + FONT_STAGE = 113, + FONT_LINEOFZERO_000000 = 114, + FONT_LINEOFZERO_0000000 = 115, + FONT_THANKYOU = 116, + FONT_NYSOFT = 117, + FONT_1997YGGDRASIL = 118, + FONT_SUPERDANDY = 119, + FONT_1997YAS_K = 120, + GUNBATTERY = 180, + PURPLECORE = 181, + SPACEFISH = 182, + MISSILE = 183, + BOSS3_BODY = 184, + BODD4_BODY = 185, + TITLEFONT_SUPER = 190, + TITLEFONT_BATTLE = 191, + TITLEFONT_EMPEROR = 192, + GREENBARRIER = 193, + REMAINDER = 194, + EARTH = 195, + BOSS_CORPSE = 196, +} CharImageNumber; + +#endif diff -r 3fb8a6a34e24 -r 6bea374ee604 dandy.h --- a/dandy.h Tue Oct 26 17:28:56 2010 +0900 +++ b/dandy.h Fri Dec 10 02:20:37 2010 +0900 @@ -1,3 +1,6 @@ +#ifndef INCLUDE_DANDY_H +#define INCLUDE_DANDY_H + #include #include #include @@ -13,9 +16,6 @@ MainLoopPtr init(Viewer *viewer, int w, int h); }; -typedef void (*move)(SceneGraphPtr node, void *sgroot_, int w, int h); -typedef void (*coll)(SceneGraphPtr node, void *sgroot_, int w, int h, SceneGraphPtr tree); - typedef struct { double x, y; //16 double vx, vy; //16 @@ -33,7 +33,7 @@ extern ObjPropertyPtr charactor; //キャラクターの総数 -static const int ENEMY_NUM = 2; +static const int ENEMY_NUM = 1; //TaskArray 生成に必要な各値 static const int TASK_NUM = 2; @@ -42,8 +42,6 @@ static const int OUTDATA_NUM = 1; extern void create_title_back(Viewer *sgroot, int w, int h); -extern void create_stage(void *sgroot, int w, int h); -extern void schedule(SceneGraphPtr node, void *sgroot_, int w, int h); //extern create_enemy(SchedTask *s, void *enemy_, void *b); @@ -108,3 +106,5 @@ ENEMY_STATUS("t", 0, 0),\ ENEMY_STATUS("t", 0, 0),\ } + +#endif diff -r 3fb8a6a34e24 -r 6bea374ee604 game_task.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/game_task.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,7 @@ +// Game で使用する Task ID + TITLE_MOVE, + TITLE_COLL, + CRAB_MOVE, + PAD_ALLOCATE, + PAD_UPDATE, + PAD_FREE, diff -r 3fb8a6a34e24 -r 6bea374ee604 global_id.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/global_id.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,2 @@ +// global_alloc で使用する ID + PAD_INPUT, diff -r 3fb8a6a34e24 -r 6bea374ee604 main.cc --- a/main.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/main.cc Fri Dec 10 02:20:37 2010 +0900 @@ -65,20 +65,7 @@ int TMmain(TaskManager *manager,int argc, char *argv[]) { - /* - if (init(argc, argv) < 0) { - return -1; - } - */ - // Task Register - // ppe/task_init.cc task_init(); - /* - for (int i = 0; i < task; ++i) { - twice_init(manager); - } - */ - //create_title(sgroot, w, h); task_initialize(); manager->set_TMend(TMend); return init(manager,argc, argv); diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadAllocate.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadAllocate.cc Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,23 @@ +#include +#include +#include "PadAllocate.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadAllocate); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + void *idata = s->get_input(rbuf, 0); + int pad_id = (int)s->get_param(0); + int size = (int)s->get_param(1); + + void *buff = s->global_alloc(pad_id, size); + if (idata != NULL) { + memcpy(buff,idata,size); + } + + return 0; +} diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadAllocate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadAllocate.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_ALLOCATE +#define INCLUDED_PAD_ALLOCATE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadFree.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadFree.cc Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,19 @@ +#include +#include +#include "PadFree.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadFree); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + int pad_id = (int)s->get_param(0); + + s->global_free(pad_id); + + return 0; +} + diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadFree.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadFree.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_FREE +#define INCLUDED_PAD_FREE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadUpdate.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadUpdate.cc Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,21 @@ +#include +#include +#include "PadUpdate.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadUpdate); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + void *idata = s->get_input(rbuf, 0); + int pad_id = (int)s->get_param(0); + int size = (int)s->get_param(1); + void *global_data = (void*)s->global_get(pad_id); + + memcpy(global_data,idata,size); + + return 0; +} diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/PadUpdate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/PadUpdate.h Fri Dec 10 02:20:37 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_UPDATE +#define INCLUDED_PAD_UPDATE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/TitleMove.cc --- a/ppe/TitleMove.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/ppe/TitleMove.cc Fri Dec 10 02:20:37 2010 +0900 @@ -14,14 +14,15 @@ ObjPropertyPtr i_obj, o_obj; i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); - pad = (Pad*)s->get_input(rbuf, 1); o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0); - + int pad_id = (int)s->get_param(0); + pad = (Pad*)s->global_get(pad_id); + if(pad->start.isPush() || pad->start.isHold()) { - i_obj->flag = 1; + printf("success \n"); } - - o_obj = i_obj; - + + s->swap(); + return 0; } diff -r 3fb8a6a34e24 -r 6bea374ee604 ppe/task_init.cc --- a/ppe/task_init.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/ppe/task_init.cc Fri Dec 10 02:20:37 2010 +0900 @@ -5,6 +5,10 @@ SchedExternTask(TitleMove); SchedExternTask(CrabMove); SchedExternTask(TitleColl); +SchedExternTask(PadAllocate); +SchedExternTask(PadUpdate); +SchedExternTask(PadFree); + /* SchedExternTask(Move00); SchedExternTask(Move01); @@ -69,6 +73,10 @@ SchedRegisterTask(TITLE_MOVE, TitleMove); SchedRegisterTask(CRAB_MOVE, CrabMove); SchedRegisterTask(TITLE_COLL, TitleColl); + SchedRegisterTask(PAD_ALLOCATE, PadAllocate); + SchedRegisterTask(PAD_UPDATE, PadUpdate); + SchedRegisterTask(PAD_FREE, PadFree); + /* SchedRegisterTask(MOVE_00, Move00); SchedRegisterTask(MOVE_01, Move01); diff -r 3fb8a6a34e24 -r 6bea374ee604 schedule.cc --- a/schedule.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/schedule.cc Fri Dec 10 02:20:37 2010 +0900 @@ -8,6 +8,7 @@ void schedule(SceneGraphPtr node, void *sgroot_, int w, int h) { +#if 0 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; Pad *pad = sgroot->getController(); // Title 画面 @@ -241,6 +242,7 @@ */ } } +#endif } ObjProperty enemy[300]; @@ -291,5 +293,5 @@ int size = sizeof(ObjProperty)*16; //printf("size = %d\n", size); - sgroot->set_move_task(obj, move, (void*)e, size, create_enemy); +// sgroot->set_move_task(obj, move, (void*)e, size, create_enemy); } diff -r 3fb8a6a34e24 -r 6bea374ee604 stage_init.cc --- a/stage_init.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/stage_init.cc Fri Dec 10 02:20:37 2010 +0900 @@ -1,25 +1,63 @@ #include "dandy.h" -void -create_crab(SchedTask *s, void *charactor_, void *b) +HTaskPtr +pad_alloc(Viewer *sgroot) +{ + HTaskPtr task = sgroot->manager->create_task(PAD_ALLOCATE); + void *pad = (void*)sgroot->getController(); + int size = sizeof(Pad); + + task->set_param(0, PAD_INPUT); + task->set_param(1, size); + task->add_inData(pad, size); + task->set_cpu(SPE_ANY); + task->spawn(); + + return task; +} + +HTaskPtr +pad_update(SceneGraphRoot *sgroot) { - ObjPropertyPtr charactor = (ObjPropertyPtr)charactor_; - SceneGraphPtr crab = (SceneGraphPtr)charactor->root; + HTaskPtr task = sgroot->tmanager->create_task(PAD_UPDATE); + void *pad = (void*)sgroot->getController(); + int size = sizeof(Pad); + + task->set_param(0, PAD_INPUT); + task->set_param(1, size); + task->add_inData(pad, size); + task->set_cpu(SPE_ANY); + task->spawn(); - crab->xyz[0] = charactor->x; - crab->xyz[1] = charactor->y; + return task; +} + +HTaskPtr +pad_free(Viewer *sgroot) +{ + HTaskPtr task = sgroot->manager->create_task(PAD_FREE); + + task->set_param(0, PAD_INPUT); + task->set_cpu(SPE_ANY); + task->spawn(); + + return task; } void -create_title(SchedTask *s, void *charactor_, void *b) +title_move(SceneGraphPtr node, void *sgroot_, int w, int h) { - ObjPropertyPtr charactor = (ObjPropertyPtr)charactor_; - SceneGraphPtr title = (SceneGraphPtr)charactor->root; + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; - if (charactor->flag == 1) { - title->remove(); - charactor->flag = 0; - } + HTaskPtr update = pad_update(sgroot); + HTaskPtr title_task = sgroot->tmanager->create_task(TITLE_MOVE); + int size = sizeof(ObjProperty); + title_task->set_param(0, PAD_INPUT); + title_task->add_inData((void *)&charactor[0], size); + title_task->add_outData((void *)&charactor[0], size); + title_task->set_cpu(SPE_ANY); + title_task->wait_for(update); + title_task->spawn(); } void @@ -35,48 +73,13 @@ charactor[0].vy = 0.0; charactor[0].flag = 0; charactor[0].parent = (void*)root; - + title->xyz[0] = charactor[0].x; title->xyz[1] = charactor[0].y; + title->set_move_collision(title_move); - SceneGraphPtr crab = (SceneGraphPtr)charactor[1].root; - charactor[1].x = w/2; - charactor[1].y = h/2; - charactor[1].vx = 1.0; - charactor[1].vy = 1.0; - charactor[1].flag = 0; - charactor[1].parent = (void*)root; - - crab->xyz[0] = charactor[1].x; - crab->xyz[1] = charactor[1].y; - crab->flag_drawable = 0; + pad_alloc(sgroot); - int size = sizeof(ObjProperty); - sgroot->task_array_init(TITLE_MOVE, TASK_NUM, PARAMETER, INDATA_NUM, OUTDATA_NUM); - sgroot->set_pad_task(title, TITLE_MOVE, (void*)&charactor[0], size, create_title); - sgroot->set_pad_task(crab, CRAB_MOVE, (void*)&charactor[1], size, create_crab); - root->addChild(title); - root->addChild(crab); sgroot->setSceneData(root); } - - -void -create_stage(void *sgroot_, int w, int h, ObjPropertyPtr charactor) -{ - SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; - - SceneGraphPtr stage = sgroot->createSceneGraph(); - SceneGraphPtr mydandy = sgroot->createSceneGraph("mydandy"); - - //mydandy->set_move_collision(dandy_move, dandy_coll); - //stage->set_move_collision(stage_move, stage_coll); - - mydandy->xyz[0] = w/2; - mydandy->xyz[1] = h*0.9; - mydandy->xyz[2] = 0.0f; - - stage->addChild(mydandy); - sgroot->setSceneData(stage); -}