From c941ffd36c3ab9625548109336f7471a18cfb508 Mon Sep 17 00:00:00 2001 From: Mike Gorchak Date: Wed, 10 Jun 2009 05:51:44 +0000 Subject: [PATCH] Support for 24 bpp pixel formats has been added. --- src/video/SDL_pixels.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_pixels.c b/src/video/SDL_pixels.c index 7b9ac86af..897f1f980 100644 --- a/src/video/SDL_pixels.c +++ b/src/video/SDL_pixels.c @@ -39,7 +39,7 @@ SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask, Uint32 masks[4]; /* Initialize the values here */ - if (SDL_BITSPERPIXEL(format) == 24) { + if (SDL_BYTESPERPIXEL(format) == 3) { *bpp = SDL_BYTESPERPIXEL(format) * 8; } else { *bpp = SDL_BITSPERPIXEL(format); @@ -203,6 +203,17 @@ SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, return SDL_PIXELFORMAT_RGB565; } break; + case 24: + switch (Rmask) { + case 0x00FF0000: + return SDL_PIXELFORMAT_RGB888; + case 0x000000FF: + return SDL_PIXELFORMAT_BGR888; + case 0x00000000: + /* FIXME: At this point we can't distinguish */ + /* if this format is RGB24 or BGR24 */ + return SDL_PIXELFORMAT_RGB24; + } case 32: switch (Rmask) { case 0xFF000000: