Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Better error reporting in allocating a pixel format.
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Mar 7, 2011
1 parent 7c38407 commit a8c0254
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/video/SDL_pixels.c
Expand Up @@ -85,7 +85,7 @@ SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask,

/* This function doesn't work with FourCC pixel formats */
if (SDL_ISPIXELFORMAT_FOURCC(format)) {
SDL_SetError("Unknown pixel format");
SDL_SetError("FOURCC pixel formats are not supported");
return SDL_FALSE;
}

Expand Down Expand Up @@ -418,11 +418,6 @@ SDL_AllocFormat(Uint32 pixel_format)
{
SDL_PixelFormat *format;

if (SDL_ISPIXELFORMAT_FOURCC(pixel_format)) {
SDL_SetError("FOURCC pixel formats are not supported");
return NULL;
}

/* Look it up in our list of previously allocated formats */
for (format = formats; format; format = format->next) {
if (pixel_format == format->format) {
Expand All @@ -435,9 +430,12 @@ SDL_AllocFormat(Uint32 pixel_format)
format = SDL_malloc(sizeof(*format));
if (format == NULL) {
SDL_OutOfMemory();
return (NULL);
return NULL;
}
if (SDL_InitFormat(format, pixel_format) < 0) {
SDL_free(format);
return NULL;
}
SDL_InitFormat(format, pixel_format);

if (!SDL_ISPIXELFORMAT_INDEXED(pixel_format)) {
/* Cache the RGB formats */
Expand All @@ -456,7 +454,6 @@ SDL_InitFormat(SDL_PixelFormat * format, Uint32 pixel_format)

if (!SDL_PixelFormatEnumToMasks(pixel_format, &bpp,
&Rmask, &Gmask, &Bmask, &Amask)) {
SDL_SetError("Unknown pixel format");
return -1;
}

Expand Down

0 comments on commit a8c0254

Please sign in to comment.