Mercurial > sdl-ios-xcode
diff src/video/SDL_surface.c @ 532:058d47b7a3b4
Return an error with color fills on less than 8 bpp surfaces.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 15 Oct 2002 05:22:50 +0000 |
parents | 4314a501d7be |
children | b8d311d90021 |
line wrap: on
line diff
--- a/src/video/SDL_surface.c Tue Oct 15 04:26:20 2002 +0000 +++ b/src/video/SDL_surface.c Tue Oct 15 05:22:50 2002 +0000 @@ -524,6 +524,20 @@ return 0; } +static int SDL_FillRect1(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color) +{ + /* FIXME: We have to worry about packing order.. *sigh* */ + SDL_SetError("1-bpp rect fill not yet implemented"); + return -1; +} + +static int SDL_FillRect4(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color) +{ + /* FIXME: We have to worry about packing order.. *sigh* */ + SDL_SetError("4-bpp rect fill not yet implemented"); + return -1; +} + /* * This function performs a fast fill of the given rectangle with 'color' */ @@ -534,6 +548,22 @@ int x, y; Uint8 *row; + /* This function doesn't work on surfaces < 8 bpp */ + if ( dst->format->BitsPerPixel < 8 ) { + switch(dst->format->BitsPerPixel) { + case 1: + return SDL_FillRect1(dst, dstrect, color); + break; + case 4: + return SDL_FillRect4(dst, dstrect, color); + break; + default: + SDL_SetError("Fill rect on unsupported surface format"); + return(-1); + break; + } + } + /* If 'dstrect' == NULL, then fill the whole surface */ if ( dstrect ) { /* Perform clipping */