Commit e51e3cfd authored by Mike Gorchak's avatar Mike Gorchak

SDL pixel format string is printed near mode number in form of...

SDL pixel format string is printed near mode number in form of SDL_PIXELFORMAT_XXXXX, when --info option is passed. It is usefull for debugging.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403642
parent 05b71a0f
...@@ -11,6 +11,58 @@ ...@@ -11,6 +11,58 @@
#define AUDIO_USAGE \ #define AUDIO_USAGE \
"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" "[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]"
struct pformat {
Uint32 id;
const char* idstr;
} pixel_format[]={
{SDL_PIXELFORMAT_INDEX1LSB, "SDL_PIXELFORMAT_INDEX1LSB"},
{SDL_PIXELFORMAT_INDEX1MSB, "SDL_PIXELFORMAT_INDEX1MSB"},
{SDL_PIXELFORMAT_INDEX4LSB, "SDL_PIXELFORMAT_INDEX4LSB"},
{SDL_PIXELFORMAT_INDEX4MSB, "SDL_PIXELFORMAT_INDEX4MSB"},
{SDL_PIXELFORMAT_INDEX8, "SDL_PIXELFORMAT_INDEX8"},
{SDL_PIXELFORMAT_RGB332, "SDL_PIXELFORMAT_RGB332"},
{SDL_PIXELFORMAT_RGB444, "SDL_PIXELFORMAT_RGB444"},
{SDL_PIXELFORMAT_RGB555, "SDL_PIXELFORMAT_RGB555"},
{SDL_PIXELFORMAT_BGR555, "SDL_PIXELFORMAT_BGR555"},
{SDL_PIXELFORMAT_ARGB4444, "SDL_PIXELFORMAT_ARGB4444"},
{SDL_PIXELFORMAT_ABGR4444, "SDL_PIXELFORMAT_ABGR4444"},
{SDL_PIXELFORMAT_ARGB1555, "SDL_PIXELFORMAT_ARGB1555"},
{SDL_PIXELFORMAT_ABGR1555, "SDL_PIXELFORMAT_ABGR1555"},
{SDL_PIXELFORMAT_RGB565, "SDL_PIXELFORMAT_RGB565"},
{SDL_PIXELFORMAT_BGR565, "SDL_PIXELFORMAT_BGR565"},
{SDL_PIXELFORMAT_RGB24, "SDL_PIXELFORMAT_RGB24"},
{SDL_PIXELFORMAT_BGR24, "SDL_PIXELFORMAT_BGR24"},
{SDL_PIXELFORMAT_RGB888, "SDL_PIXELFORMAT_RGB888"},
{SDL_PIXELFORMAT_BGR888, "SDL_PIXELFORMAT_BGR888"},
{SDL_PIXELFORMAT_ARGB8888, "SDL_PIXELFORMAT_ARGB8888"},
{SDL_PIXELFORMAT_RGBA8888, "SDL_PIXELFORMAT_RGBA8888"},
{SDL_PIXELFORMAT_ABGR8888, "SDL_PIXELFORMAT_ABGR8888"},
{SDL_PIXELFORMAT_BGRA8888, "SDL_PIXELFORMAT_BGRA8888"},
{SDL_PIXELFORMAT_ARGB2101010, "SDL_PIXELFORMAT_ARGB2101010"},
{SDL_PIXELFORMAT_YV12, "SDL_PIXELFORMAT_YV12"},
{SDL_PIXELFORMAT_IYUV, "SDL_PIXELFORMAT_IYUV"},
{SDL_PIXELFORMAT_YUY2, "SDL_PIXELFORMAT_YUY2"},
{SDL_PIXELFORMAT_UYVY, "SDL_PIXELFORMAT_UYVY"},
{SDL_PIXELFORMAT_YVYU, "SDL_PIXELFORMAT_YVYU"}
};
const char* PixelFormatToString(Uint32 pformat)
{
Uint32 it=0;
do {
if (pixel_format[it].idstr == NULL) {
break;
}
if (pixel_format[it].id == pformat) {
return pixel_format[it].idstr;
}
it++;
} while(1);
return "SDL_PIXELFORMAT_UNKNOWN";
}
CommonState * CommonState *
CommonCreateState(char **argv, Uint32 flags) CommonCreateState(char **argv, Uint32 flags)
{ {
...@@ -399,12 +451,21 @@ PrintPixelFormat(Uint32 format) ...@@ -399,12 +451,21 @@ PrintPixelFormat(Uint32 format)
case SDL_PIXELFORMAT_ARGB4444: case SDL_PIXELFORMAT_ARGB4444:
fprintf(stderr, "ARGB4444"); fprintf(stderr, "ARGB4444");
break; break;
case SDL_PIXELFORMAT_ABGR4444:
fprintf(stderr, "ABGR4444");
break;
case SDL_PIXELFORMAT_ARGB1555: case SDL_PIXELFORMAT_ARGB1555:
fprintf(stderr, "ARGB1555"); fprintf(stderr, "ARGB1555");
break; break;
case SDL_PIXELFORMAT_ABGR1555:
fprintf(stderr, "ABGR1555");
break;
case SDL_PIXELFORMAT_RGB565: case SDL_PIXELFORMAT_RGB565:
fprintf(stderr, "RGB565"); fprintf(stderr, "RGB565");
break; break;
case SDL_PIXELFORMAT_BGR565:
fprintf(stderr, "BGR565");
break;
case SDL_PIXELFORMAT_RGB24: case SDL_PIXELFORMAT_RGB24:
fprintf(stderr, "RGB24"); fprintf(stderr, "RGB24");
break; break;
...@@ -567,8 +628,9 @@ CommonInit(CommonState * state) ...@@ -567,8 +628,9 @@ CommonInit(CommonState * state)
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask,
&Bmask, &Amask); &Bmask, &Amask);
fprintf(stderr, fprintf(stderr,
" Current mode: %dx%d@%dHz, %d bits-per-pixel\n", " Current mode: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
mode.w, mode.h, mode.refresh_rate, bpp); mode.w, mode.h, mode.refresh_rate, bpp,
PixelFormatToString(mode.format));
if (Rmask || Gmask || Bmask) { if (Rmask || Gmask || Bmask) {
fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask);
fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask);
...@@ -588,8 +650,9 @@ CommonInit(CommonState * state) ...@@ -588,8 +650,9 @@ CommonInit(CommonState * state)
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask,
&Gmask, &Bmask, &Amask); &Gmask, &Bmask, &Amask);
fprintf(stderr, fprintf(stderr,
" Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", " Mode %d: %dx%d@%dHz, %d bits-per-pixel (%s)\n",
j, mode.w, mode.h, mode.refresh_rate, bpp); j, mode.w, mode.h, mode.refresh_rate, bpp,
PixelFormatToString(mode.format));
if (Rmask || Gmask || Bmask) { if (Rmask || Gmask || Bmask) {
fprintf(stderr, " Red Mask = 0x%.8x\n", fprintf(stderr, " Red Mask = 0x%.8x\n",
Rmask); Rmask);
...@@ -633,6 +696,9 @@ CommonInit(CommonState * state) ...@@ -633,6 +696,9 @@ CommonInit(CommonState * state)
case 16: case 16:
fullscreen_mode.format = SDL_PIXELFORMAT_RGB565; fullscreen_mode.format = SDL_PIXELFORMAT_RGB565;
break; break;
case 24:
fullscreen_mode.format = SDL_PIXELFORMAT_RGB24;
break;
default: default:
fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; fullscreen_mode.format = SDL_PIXELFORMAT_RGB888;
break; break;
...@@ -640,7 +706,11 @@ CommonInit(CommonState * state) ...@@ -640,7 +706,11 @@ CommonInit(CommonState * state)
fullscreen_mode.w = state->window_w; fullscreen_mode.w = state->window_w;
fullscreen_mode.h = state->window_h; fullscreen_mode.h = state->window_h;
fullscreen_mode.refresh_rate = state->refresh_rate; fullscreen_mode.refresh_rate = state->refresh_rate;
SDL_SetFullscreenDisplayMode(&fullscreen_mode); if (SDL_SetFullscreenDisplayMode(&fullscreen_mode)<0) {
fprintf(stderr, "Can't switch to fullscreen display mode: %s\n",
SDL_GetError());
return SDL_FALSE;
}
state->windows = state->windows =
(SDL_WindowID *) SDL_malloc(state->num_windows * (SDL_WindowID *) SDL_malloc(state->num_windows *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment