Mercurial > hg > Members > kono > Cerium
diff Renderer/Engine/main.cc @ 507:735f76483bb2
Reorganization..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Oct 2009 09:39:35 +0900 |
parents | |
children | 8148c81d2660 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Renderer/Engine/main.cc Mon Oct 12 09:39:35 2009 +0900 @@ -0,0 +1,100 @@ +#include "TaskManager.h" +#include "viewer.h" +#include "viewerSDL.h" +#include "viewerFB.h" +#include "Func.h" + +/* prototype */ +static int init(TaskManager *manager, int argc, char *argv[]); +static void TMend(TaskManager *manager); + +extern void task_initialize(); + +// 帯域変数は禁止 +//static Viewer *screen; +static int sg_number = 0; + + +const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n\ + -cpu Number of SPE (default 1)\n\ + -width, -height window size (default 640x480)\n\ + -sg Draw SceneGraph\n\ + 0: Joystick の 丸ボタン(Keyboard だとx) を押すと、キューブが二つに分かれる\n\ + 1: 0 のキューブが大きい版\n\ + 2: テクスチャテスト:576x384\n\ + 3: テクスチャテスト:1024x768\n\ + 4: テクスチャテスト:2048x1536\n\ + 5: 地球が動き、その周りを月が自転、公転する\n\ + 6 以降: キューブが跳ね返りながら、勝手にキューブが増えて行く\n"; + +int +init(TaskManager *manager, int argc, char *argv[]) +{ + int bpp = 32; + int width = 640; + int height = 480; + int spenum = 1; + const char *xml = "xml_file/cube.xml"; + video_type vtype = VTYPE_SDL; + + for(int i = 1; argv[i]; ++i) + { + if (strcmp(argv[i], "-bpp") == 0) { + bpp = atoi(argv[++i]); + } + if (strcmp(argv[i], "-width") == 0) { + width = atoi(argv[++i]); + } + if (strcmp(argv[i], "-height") == 0) { + height = atoi(argv[++i]); + } + if (strcmp(argv[i], "-xml") == 0) { + xml = argv[++i]; + } + if (strcmp(argv[i], "-sg") == 0) { + sg_number = (atoi)(argv[++i]); + } + if (strcmp(argv[i], "-cpu") == 0) { + spenum = atoi(argv[++i]); + } + if (strcmp(argv[i], "-video") == 0) { + if (strcmp(argv[i+1], "sdl") == 0) { + vtype = VTYPE_SDL; + } else if (strcmp(argv[i+1], "fb") == 0) { + vtype = VTYPE_FB; + } + i++; + } + } + + Viewer *screen; + if (vtype == VTYPE_SDL) { + screen = new ViewerSDL(manager, bpp, width, height, spenum); + } else if (vtype == VTYPE_FB) { + screen = new ViewerFB(manager, bpp, width, height, spenum); + }else{ + screen = new ViewerSDL(manager, bpp, width, height, spenum); + } + + screen->video_init(manager); + screen->run_init(manager, xml, sg_number); + + manager->set_TMend(TMend); + + return 0; +} + +int +TMmain(TaskManager *manager, int argc, char *argv[]) +{ + task_initialize(); + return init(manager, argc, argv); + + //return 0; +} + +void +TMend(TaskManager *manager) +{ + printf("test_nogl end\n"); +}