Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/main.cc @ 914:05696567d1d2
0 is filled on the spe side.
author | yutaka@localhost.localdomain |
---|---|
date | Thu, 22 Jul 2010 00:23:37 +0900 |
parents | bed529c55eda |
children | 655e11f6e437 |
rev | line source |
---|---|
507 | 1 #include "TaskManager.h" |
2 #include "viewer.h" | |
3 #include "viewerSDL.h" | |
4 #include "viewerFB.h" | |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
5 #include "Application.h" |
507 | 6 |
7 /* prototype */ | |
524 | 8 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 9 |
10 extern void task_initialize(); | |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
11 extern Application *application(); |
524 | 12 extern int init(TaskManager *manager, int argc, char *argv[]); |
507 | 13 |
524 | 14 // 大域変数は禁止 |
507 | 15 //static Viewer *screen; |
16 | |
524 | 17 /* |
507 | 18 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n\ |
19 -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
|
20 -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
|
21 -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
|
22 \n"; |
524 | 23 */ |
507 | 24 |
25 int | |
26 init(TaskManager *manager, int argc, char *argv[]) | |
27 { | |
28 int bpp = 32; | |
29 int width = 640; | |
30 int height = 480; | |
31 int spenum = 1; | |
32 video_type vtype = VTYPE_SDL; | |
33 | |
914 | 34 int mem_flag = 0; |
35 | |
507 | 36 for(int i = 1; argv[i]; ++i) |
37 { | |
38 if (strcmp(argv[i], "-bpp") == 0) { | |
39 bpp = atoi(argv[++i]); | |
40 } | |
41 if (strcmp(argv[i], "-width") == 0) { | |
42 width = atoi(argv[++i]); | |
43 } | |
44 if (strcmp(argv[i], "-height") == 0) { | |
45 height = atoi(argv[++i]); | |
46 } | |
47 if (strcmp(argv[i], "-cpu") == 0) { | |
48 spenum = atoi(argv[++i]); | |
49 } | |
50 if (strcmp(argv[i], "-video") == 0) { | |
51 if (strcmp(argv[i+1], "sdl") == 0) { | |
52 vtype = VTYPE_SDL; | |
53 } else if (strcmp(argv[i+1], "fb") == 0) { | |
54 vtype = VTYPE_FB; | |
55 } | |
56 i++; | |
57 } | |
914 | 58 if (strcmp(argv[i], "-mem") == 0) { |
59 mem_flag = 1; | |
60 } | |
507 | 61 } |
62 | |
63 Viewer *screen; | |
64 if (vtype == VTYPE_SDL) { | |
728 | 65 ViewerDevice *dev = new ViewerSDL(manager); |
66 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 67 } else if (vtype == VTYPE_FB) { |
728 | 68 ViewerDevice *dev = new ViewerFB(manager); |
69 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 70 }else{ |
728 | 71 ViewerDevice *dev = new ViewerSDL(manager); |
72 screen = new Viewer(manager, dev, bpp, width, height, spenum); | |
507 | 73 } |
728 | 74 |
914 | 75 screen->mem_flag = mem_flag; |
509
8148c81d2660
Cerium Rendering Library
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
507
diff
changeset
|
76 screen->run_init(manager, application()); |
507 | 77 |
78 return 0; | |
79 } | |
80 | |
524 | 81 #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
|
82 |
32a7260fad2f
32bit/64bit ABI (64 bit is not tested yet).
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
524
diff
changeset
|
83 // 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
|
84 |
507 | 85 int |
86 TMmain(TaskManager *manager, int argc, char *argv[]) | |
87 { | |
88 task_initialize(); | |
524 | 89 manager->set_TMend(TMend); |
507 | 90 return init(manager, argc, argv); |
91 | |
92 } | |
93 | |
94 void | |
95 TMend(TaskManager *manager) | |
96 { | |
97 } | |
524 | 98 |
99 #endif | |
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 /* end */ |