Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/main.cc @ 944:208e0478eaac
rename viewerGL
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 31 Jul 2010 21:40:30 +0900 |
parents | 9da903858400 |
children | a193a851b5e3 |
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" |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
6 #include "Application.h" |
507 | 7 |
8 /* prototype */ | |
524 | 9 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 10 |
11 extern void task_initialize(); | |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
12 extern Application *application(); |
524 | 13 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 14 |
524 | 15 // 大域変数は禁止 |
507 | 16 //static Viewer *screen; |
17 | |
524 | 18 /* |
507 | 19 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n\ |
20 -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
|
21 -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
|
22 -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
|
23 \n"; |
524 | 24 */ |
507 | 25 |
26 int | |
27 init(TaskManager *manager, int argc, char *argv[]) | |
28 { | |
29 int bpp = 32; | |
30 int width = 640; | |
31 int height = 480; | |
32 int spenum = 1; | |
33 video_type vtype = VTYPE_SDL; | |
34 | |
914 | 35 int mem_flag = 0; |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
36 int profile = 0; |
914 | 37 |
507 | 38 for(int i = 1; argv[i]; ++i) |
39 { | |
40 if (strcmp(argv[i], "-bpp") == 0) { | |
41 bpp = atoi(argv[++i]); | |
42 } | |
43 if (strcmp(argv[i], "-width") == 0) { | |
44 width = atoi(argv[++i]); | |
45 } | |
46 if (strcmp(argv[i], "-height") == 0) { | |
47 height = atoi(argv[++i]); | |
48 } | |
49 if (strcmp(argv[i], "-cpu") == 0) { | |
50 spenum = atoi(argv[++i]); | |
51 } | |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
52 if (strcmp(argv[i], "-p") == 0) { |
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
53 profile = 1; |
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
54 } |
507 | 55 if (strcmp(argv[i], "-video") == 0) { |
56 if (strcmp(argv[i+1], "sdl") == 0) { | |
57 vtype = VTYPE_SDL; | |
58 } else if (strcmp(argv[i+1], "fb") == 0) { | |
59 vtype = VTYPE_FB; | |
922 | 60 } else if (strcmp(argv[i+1], "gl") == 0) { |
61 vtype = VTYPE_GL; | |
507 | 62 } |
63 i++; | |
64 } | |
914 | 65 if (strcmp(argv[i], "-mem") == 0) { |
66 mem_flag = 1; | |
67 } | |
507 | 68 } |
69 | |
70 Viewer *screen; | |
71 if (vtype == VTYPE_SDL) { | |
728 | 72 ViewerDevice *dev = new ViewerSDL(manager); |
73 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 74 } else if (vtype == VTYPE_FB) { |
728 | 75 ViewerDevice *dev = new ViewerFB(manager); |
76 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
922 | 77 } else if (vtype == VTYPE_GL) { |
944 | 78 screen = new ViewerGL(manager, bpp, width, height, spenum); |
922 | 79 } else { |
728 | 80 ViewerDevice *dev = new ViewerSDL(manager); |
81 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 82 } |
728 | 83 |
914 | 84 screen->mem_flag = mem_flag; |
925
9da903858400
add profile in Redering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
922
diff
changeset
|
85 screen->profile = 1; |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
86 screen->run_init(manager, application()); |
507 | 87 |
88 return 0; | |
89 } | |
90 | |
524 | 91 #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
|
92 |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
93 // 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
|
94 |
507 | 95 int |
96 TMmain(TaskManager *manager, int argc, char *argv[]) | |
97 { | |
98 task_initialize(); | |
524 | 99 manager->set_TMend(TMend); |
507 | 100 return init(manager, argc, argv); |
101 | |
102 } | |
103 | |
104 void | |
105 TMend(TaskManager *manager) | |
106 { | |
107 } | |
524 | 108 |
109 #endif | |
606
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
110 |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
111 /* end */ |