Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/main.cc @ 994:33616b2789de
SDL mode fix
author | yutaka@charles.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 11 Oct 2010 14:21:02 +0900 |
parents | e40dd2384357 |
children |
rev | line source |
---|---|
507 | 1 #include "TaskManager.h" |
2 #include "viewer.h" | |
3 #include "viewerSDL.h" | |
4 #include "viewerFB.h" | |
922 | 5 #include "viewerGL.h" |
981
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
6 #include "viewerPS3.h" |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
7 #include "Application.h" |
507 | 8 |
9 /* prototype */ | |
524 | 10 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 11 |
12 extern void task_initialize(); | |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
13 extern Application *application(); |
524 | 14 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 15 |
524 | 16 // 大域変数は禁止 |
507 | 17 //static Viewer *screen; |
18 | |
524 | 19 /* |
507 | 20 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n\ |
21 -cpu Number of SPE (default 1)\n\ | |
895
bed529c55eda
add alignment of classes in SPU
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
728
diff
changeset
|
22 -width, -height window size (default 640x480), -bpp bits per pixcel\n\ |
bed529c55eda
add alignment of classes in SPU
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
728
diff
changeset
|
23 -video {sdl|fb} in case of frame buffer, width,height,bpp is automatically set\n\ |
bed529c55eda
add alignment of classes in SPU
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
728
diff
changeset
|
24 \n"; |
524 | 25 */ |
507 | 26 |
27 int | |
28 init(TaskManager *manager, int argc, char *argv[]) | |
29 { | |
30 int bpp = 32; | |
31 int width = 640; | |
32 int height = 480; | |
33 int spenum = 1; | |
34 video_type vtype = VTYPE_SDL; | |
35 | |
914 | 36 int mem_flag = 0; |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
37 int profile = 0; |
914 | 38 |
507 | 39 for(int i = 1; argv[i]; ++i) |
40 { | |
41 if (strcmp(argv[i], "-bpp") == 0) { | |
42 bpp = atoi(argv[++i]); | |
43 } | |
44 if (strcmp(argv[i], "-width") == 0) { | |
45 width = atoi(argv[++i]); | |
46 } | |
47 if (strcmp(argv[i], "-height") == 0) { | |
48 height = atoi(argv[++i]); | |
49 } | |
50 if (strcmp(argv[i], "-cpu") == 0) { | |
51 spenum = atoi(argv[++i]); | |
52 } | |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
53 if (strcmp(argv[i], "-p") == 0) { |
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
54 profile = 1; |
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
55 } |
507 | 56 if (strcmp(argv[i], "-video") == 0) { |
57 if (strcmp(argv[i+1], "sdl") == 0) { | |
58 vtype = VTYPE_SDL; | |
59 } else if (strcmp(argv[i+1], "fb") == 0) { | |
60 vtype = VTYPE_FB; | |
922 | 61 } else if (strcmp(argv[i+1], "gl") == 0) { |
62 vtype = VTYPE_GL; | |
981
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
63 } else if (strcmp(argv[i+1], "ps3") == 0) { |
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
64 vtype = VTYPE_PS3; |
985 | 65 } else if (strcmp(argv[i+1], "sdl") == 0) { |
66 vtype = VTYPE_SDL; | |
507 | 67 } |
68 i++; | |
69 } | |
914 | 70 if (strcmp(argv[i], "-mem") == 0) { |
71 mem_flag = 1; | |
72 } | |
507 | 73 } |
74 | |
75 Viewer *screen; | |
76 if (vtype == VTYPE_SDL) { | |
728 | 77 ViewerDevice *dev = new ViewerSDL(manager); |
78 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 79 } else if (vtype == VTYPE_FB) { |
728 | 80 ViewerDevice *dev = new ViewerFB(manager); |
81 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
922 | 82 } else if (vtype == VTYPE_GL) { |
944 | 83 screen = new ViewerGL(manager, bpp, width, height, spenum); |
981
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
84 } else if (vtype == VTYPE_PS3) { |
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
85 ViewerDevice *dev = new ViewerPS3(); |
a193a851b5e3
add double buffering frame device
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
944
diff
changeset
|
86 screen = new Viewer(manager, dev, bpp, width, height, spenum); |
922 | 87 } else { |
728 | 88 ViewerDevice *dev = new ViewerSDL(manager); |
89 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 90 } |
728 | 91 |
914 | 92 screen->mem_flag = mem_flag; |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
93 screen->profile = 1; |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
94 screen->run_init(manager, application()); |
507 | 95 |
96 return 0; | |
97 } | |
98 | |
524 | 99 #if 0 |
606
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
100 |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
101 // These are defined in Application |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
102 |
507 | 103 int |
104 TMmain(TaskManager *manager, int argc, char *argv[]) | |
105 { | |
106 task_initialize(); | |
524 | 107 manager->set_TMend(TMend); |
507 | 108 return init(manager, argc, argv); |
109 | |
110 } | |
111 | |
112 void | |
113 TMend(TaskManager *manager) | |
114 { | |
115 } | |
524 | 116 |
117 #endif | |
606
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
118 |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
119 /* end */ |