Return an error with color fills on less than 8 bpp surfaces.
--- 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 */