Mercurial > hg > Members > kono > Cerium
diff Renderer/test_render/main.cpp @ 283:55ea4465b1a2
fix test_render
author | e065746@localhost.localdomain |
---|---|
date | Fri, 05 Jun 2009 16:49:12 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Renderer/test_render/main.cpp Fri Jun 05 16:49:12 2009 +0900 @@ -0,0 +1,101 @@ +#include "TaskManager.h" +#include "viewer.h" +#include "viewerSDL.h" +#include "viewerFB.h" +#include "Func.h" + +/* prototype */ +static int init(int argc, char *argv[]); +static void TMend(void); + +extern void task_initialize(); + +Viewer *screen; + +static int sg_number = 0; + +static const char *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(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], "-help") == 0) { + printf("%s\n", help_str); + return -1; + } + 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++; + } + } + + if (vtype == VTYPE_SDL) { + screen = new ViewerSDL(bpp, width, height, spenum); + } else if (vtype == VTYPE_FB) { + screen = new ViewerFB(bpp, width, height, spenum); + } + + screen->video_init(); + screen->run_init(xml, sg_number); + + manager->set_TMend(TMend); + + return 0; +} + +int +TMmain(int argc, char *argv[]) +{ + task_initialize(); + + return init(argc, argv); + + //return 0; +} + +void +TMend(void) +{ + printf("test_nogl end\n"); +}