comparison test/common.c @ 3194:c18c03927a77

Proper window resize handling in GLES test application.
author Mike Gorchak <lestat@i.com.ua>
date Thu, 11 Jun 2009 06:03:05 +0000
parents 51750b7a966f
children 3e0f51e60fa2
comparison
equal deleted inserted replaced
3193:64e4442676a6 3194:c18c03927a77
9 "[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" 9 "[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]"
10 10
11 #define AUDIO_USAGE \ 11 #define AUDIO_USAGE \
12 "[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" 12 "[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]"
13 13
14 struct pformat 14 struct pformat {
15 {
16 Uint32 id; 15 Uint32 id;
17 const char *idstr; 16 const char* idstr;
18 } pixel_format[] = { 17 } pixel_format[]={
19 { 18 {SDL_PIXELFORMAT_INDEX1LSB, "SDL_PIXELFORMAT_INDEX1LSB"},
20 SDL_PIXELFORMAT_INDEX1LSB, "SDL_PIXELFORMAT_INDEX1LSB"}, { 19 {SDL_PIXELFORMAT_INDEX1MSB, "SDL_PIXELFORMAT_INDEX1MSB"},
21 SDL_PIXELFORMAT_INDEX1MSB, "SDL_PIXELFORMAT_INDEX1MSB"}, { 20 {SDL_PIXELFORMAT_INDEX4LSB, "SDL_PIXELFORMAT_INDEX4LSB"},
22 SDL_PIXELFORMAT_INDEX4LSB, "SDL_PIXELFORMAT_INDEX4LSB"}, { 21 {SDL_PIXELFORMAT_INDEX4MSB, "SDL_PIXELFORMAT_INDEX4MSB"},
23 SDL_PIXELFORMAT_INDEX4MSB, "SDL_PIXELFORMAT_INDEX4MSB"}, { 22 {SDL_PIXELFORMAT_INDEX8, "SDL_PIXELFORMAT_INDEX8"},
24 SDL_PIXELFORMAT_INDEX8, "SDL_PIXELFORMAT_INDEX8"}, { 23 {SDL_PIXELFORMAT_RGB332, "SDL_PIXELFORMAT_RGB332"},
25 SDL_PIXELFORMAT_RGB332, "SDL_PIXELFORMAT_RGB332"}, { 24 {SDL_PIXELFORMAT_RGB444, "SDL_PIXELFORMAT_RGB444"},
26 SDL_PIXELFORMAT_RGB444, "SDL_PIXELFORMAT_RGB444"}, { 25 {SDL_PIXELFORMAT_RGB555, "SDL_PIXELFORMAT_RGB555"},
27 SDL_PIXELFORMAT_RGB555, "SDL_PIXELFORMAT_RGB555"}, { 26 {SDL_PIXELFORMAT_BGR555, "SDL_PIXELFORMAT_BGR555"},
28 SDL_PIXELFORMAT_BGR555, "SDL_PIXELFORMAT_BGR555"}, { 27 {SDL_PIXELFORMAT_ARGB4444, "SDL_PIXELFORMAT_ARGB4444"},
29 SDL_PIXELFORMAT_ARGB4444, "SDL_PIXELFORMAT_ARGB4444"}, { 28 {SDL_PIXELFORMAT_ABGR4444, "SDL_PIXELFORMAT_ABGR4444"},
30 SDL_PIXELFORMAT_ABGR4444, "SDL_PIXELFORMAT_ABGR4444"}, { 29 {SDL_PIXELFORMAT_ARGB1555, "SDL_PIXELFORMAT_ARGB1555"},
31 SDL_PIXELFORMAT_ARGB1555, "SDL_PIXELFORMAT_ARGB1555"}, { 30 {SDL_PIXELFORMAT_ABGR1555, "SDL_PIXELFORMAT_ABGR1555"},
32 SDL_PIXELFORMAT_ABGR1555, "SDL_PIXELFORMAT_ABGR1555"}, { 31 {SDL_PIXELFORMAT_RGB565, "SDL_PIXELFORMAT_RGB565"},
33 SDL_PIXELFORMAT_RGB565, "SDL_PIXELFORMAT_RGB565"}, { 32 {SDL_PIXELFORMAT_BGR565, "SDL_PIXELFORMAT_BGR565"},
34 SDL_PIXELFORMAT_BGR565, "SDL_PIXELFORMAT_BGR565"}, { 33 {SDL_PIXELFORMAT_RGB24, "SDL_PIXELFORMAT_RGB24"},
35 SDL_PIXELFORMAT_RGB24, "SDL_PIXELFORMAT_RGB24"}, { 34 {SDL_PIXELFORMAT_BGR24, "SDL_PIXELFORMAT_BGR24"},
36 SDL_PIXELFORMAT_BGR24, "SDL_PIXELFORMAT_BGR24"}, { 35 {SDL_PIXELFORMAT_RGB888, "SDL_PIXELFORMAT_RGB888"},
37 SDL_PIXELFORMAT_RGB888, "SDL_PIXELFORMAT_RGB888"}, { 36 {SDL_PIXELFORMAT_BGR888, "SDL_PIXELFORMAT_BGR888"},
38 SDL_PIXELFORMAT_BGR888, "SDL_PIXELFORMAT_BGR888"}, { 37 {SDL_PIXELFORMAT_ARGB8888, "SDL_PIXELFORMAT_ARGB8888"},
39 SDL_PIXELFORMAT_ARGB8888, "SDL_PIXELFORMAT_ARGB8888"}, { 38 {SDL_PIXELFORMAT_RGBA8888, "SDL_PIXELFORMAT_RGBA8888"},
40 SDL_PIXELFORMAT_RGBA8888, "SDL_PIXELFORMAT_RGBA8888"}, { 39 {SDL_PIXELFORMAT_ABGR8888, "SDL_PIXELFORMAT_ABGR8888"},
41 SDL_PIXELFORMAT_ABGR8888, "SDL_PIXELFORMAT_ABGR8888"}, { 40 {SDL_PIXELFORMAT_BGRA8888, "SDL_PIXELFORMAT_BGRA8888"},
42 SDL_PIXELFORMAT_BGRA8888, "SDL_PIXELFORMAT_BGRA8888"}, { 41 {SDL_PIXELFORMAT_ARGB2101010, "SDL_PIXELFORMAT_ARGB2101010"},
43 SDL_PIXELFORMAT_ARGB2101010, "SDL_PIXELFORMAT_ARGB2101010"}, { 42 {SDL_PIXELFORMAT_YV12, "SDL_PIXELFORMAT_YV12"},
44 SDL_PIXELFORMAT_YV12, "SDL_PIXELFORMAT_YV12"}, { 43 {SDL_PIXELFORMAT_IYUV, "SDL_PIXELFORMAT_IYUV"},
45 SDL_PIXELFORMAT_IYUV, "SDL_PIXELFORMAT_IYUV"}, { 44 {SDL_PIXELFORMAT_YUY2, "SDL_PIXELFORMAT_YUY2"},
46 SDL_PIXELFORMAT_YUY2, "SDL_PIXELFORMAT_YUY2"}, { 45 {SDL_PIXELFORMAT_UYVY, "SDL_PIXELFORMAT_UYVY"},
47 SDL_PIXELFORMAT_UYVY, "SDL_PIXELFORMAT_UYVY"}, { 46 {SDL_PIXELFORMAT_YVYU, "SDL_PIXELFORMAT_YVYU"}
48 SDL_PIXELFORMAT_YVYU, "SDL_PIXELFORMAT_YVYU"}
49 }; 47 };
50 48
51 const char * 49 const char* PixelFormatToString(Uint32 pformat)
52 PixelFormatToString(Uint32 pformat) 50 {
53 { 51 Uint32 it=0;
54 Uint32 it = 0; 52
55 53 do {
56 do { 54 if (pixel_format[it].idstr == NULL) {
57 if (pixel_format[it].idstr == NULL) { 55 break;
58 break; 56 }
59 } 57 if (pixel_format[it].id == pformat) {
60 if (pixel_format[it].id == pformat) { 58 return pixel_format[it].idstr;
61 return pixel_format[it].idstr; 59 }
62 } 60 it++;
63 it++; 61 } while(1);
64 } while (1); 62
65 63 return "SDL_PIXELFORMAT_UNKNOWN";
66 return "SDL_PIXELFORMAT_UNKNOWN";
67 } 64 }
68 65
69 CommonState * 66 CommonState *
70 CommonCreateState(char **argv, Uint32 flags) 67 CommonCreateState(char **argv, Uint32 flags)
71 { 68 {
80 state->flags = flags; 77 state->flags = flags;
81 state->window_title = argv[0]; 78 state->window_title = argv[0];
82 state->window_flags = SDL_WINDOW_SHOWN; 79 state->window_flags = SDL_WINDOW_SHOWN;
83 state->window_x = SDL_WINDOWPOS_UNDEFINED; 80 state->window_x = SDL_WINDOWPOS_UNDEFINED;
84 state->window_y = SDL_WINDOWPOS_UNDEFINED; 81 state->window_y = SDL_WINDOWPOS_UNDEFINED;
85 state->window_w = 640; 82 state->window_w = DEFAULT_WINDOW_WIDTH;
86 state->window_h = 480; 83 state->window_h = DEFAULT_WINDOW_HEIGHT;
87 state->num_windows = 1; 84 state->num_windows = 1;
88 state->audiospec.freq = 22050; 85 state->audiospec.freq = 22050;
89 state->audiospec.format = AUDIO_S16; 86 state->audiospec.format = AUDIO_S16;
90 state->audiospec.channels = 2; 87 state->audiospec.channels = 2;
91 state->audiospec.samples = 2048; 88 state->audiospec.samples = 2048;
707 break; 704 break;
708 } 705 }
709 fullscreen_mode.w = state->window_w; 706 fullscreen_mode.w = state->window_w;
710 fullscreen_mode.h = state->window_h; 707 fullscreen_mode.h = state->window_h;
711 fullscreen_mode.refresh_rate = state->refresh_rate; 708 fullscreen_mode.refresh_rate = state->refresh_rate;
712 if (SDL_SetFullscreenDisplayMode(&fullscreen_mode) < 0) { 709 if (SDL_SetFullscreenDisplayMode(&fullscreen_mode)<0) {
713 fprintf(stderr, "Can't switch to fullscreen display mode: %s\n", 710 fprintf(stderr, "Can't switch to fullscreen display mode: %s\n",
714 SDL_GetError()); 711 SDL_GetError());
715 return SDL_FALSE; 712 return SDL_FALSE;
716 } 713 }
717 714