Mercurial > hg > Game > Cerium
comparison Renderer/Engine/main.cc @ 539:3bc98f6d31ff draft
Reorganization..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Oct 2009 09:39:35 +0900 |
parents | |
children | 1a31b8820a4d |
comparison
equal
deleted
inserted
replaced
538:5641d121818e | 539:3bc98f6d31ff |
---|---|
1 #include "TaskManager.h" | |
2 #include "viewer.h" | |
3 #include "viewerSDL.h" | |
4 #include "viewerFB.h" | |
5 #include "Func.h" | |
6 | |
7 /* prototype */ | |
8 static int init(TaskManager *manager, int argc, char *argv[]); | |
9 static void TMend(TaskManager *manager); | |
10 | |
11 extern void task_initialize(); | |
12 | |
13 // 帯域変数は禁止 | |
14 //static Viewer *screen; | |
15 static int sg_number = 0; | |
16 | |
17 | |
18 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n\ | |
19 -cpu Number of SPE (default 1)\n\ | |
20 -width, -height window size (default 640x480)\n\ | |
21 -sg Draw SceneGraph\n\ | |
22 0: Joystick の 丸ボタン(Keyboard だとx) を押すと、キューブが二つに分かれる\n\ | |
23 1: 0 のキューブが大きい版\n\ | |
24 2: テクスチャテスト:576x384\n\ | |
25 3: テクスチャテスト:1024x768\n\ | |
26 4: テクスチャテスト:2048x1536\n\ | |
27 5: 地球が動き、その周りを月が自転、公転する\n\ | |
28 6 以降: キューブが跳ね返りながら、勝手にキューブが増えて行く\n"; | |
29 | |
30 int | |
31 init(TaskManager *manager, int argc, char *argv[]) | |
32 { | |
33 int bpp = 32; | |
34 int width = 640; | |
35 int height = 480; | |
36 int spenum = 1; | |
37 const char *xml = "xml_file/cube.xml"; | |
38 video_type vtype = VTYPE_SDL; | |
39 | |
40 for(int i = 1; argv[i]; ++i) | |
41 { | |
42 if (strcmp(argv[i], "-bpp") == 0) { | |
43 bpp = atoi(argv[++i]); | |
44 } | |
45 if (strcmp(argv[i], "-width") == 0) { | |
46 width = atoi(argv[++i]); | |
47 } | |
48 if (strcmp(argv[i], "-height") == 0) { | |
49 height = atoi(argv[++i]); | |
50 } | |
51 if (strcmp(argv[i], "-xml") == 0) { | |
52 xml = argv[++i]; | |
53 } | |
54 if (strcmp(argv[i], "-sg") == 0) { | |
55 sg_number = (atoi)(argv[++i]); | |
56 } | |
57 if (strcmp(argv[i], "-cpu") == 0) { | |
58 spenum = atoi(argv[++i]); | |
59 } | |
60 if (strcmp(argv[i], "-video") == 0) { | |
61 if (strcmp(argv[i+1], "sdl") == 0) { | |
62 vtype = VTYPE_SDL; | |
63 } else if (strcmp(argv[i+1], "fb") == 0) { | |
64 vtype = VTYPE_FB; | |
65 } | |
66 i++; | |
67 } | |
68 } | |
69 | |
70 Viewer *screen; | |
71 if (vtype == VTYPE_SDL) { | |
72 screen = new ViewerSDL(manager, bpp, width, height, spenum); | |
73 } else if (vtype == VTYPE_FB) { | |
74 screen = new ViewerFB(manager, bpp, width, height, spenum); | |
75 }else{ | |
76 screen = new ViewerSDL(manager, bpp, width, height, spenum); | |
77 } | |
78 | |
79 screen->video_init(manager); | |
80 screen->run_init(manager, xml, sg_number); | |
81 | |
82 manager->set_TMend(TMend); | |
83 | |
84 return 0; | |
85 } | |
86 | |
87 int | |
88 TMmain(TaskManager *manager, int argc, char *argv[]) | |
89 { | |
90 task_initialize(); | |
91 return init(manager, argc, argv); | |
92 | |
93 //return 0; | |
94 } | |
95 | |
96 void | |
97 TMend(TaskManager *manager) | |
98 { | |
99 printf("test_nogl end\n"); | |
100 } |