539
|
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 }
|