Skip to content
Permalink
Browse files

Return an error with color fills on less than 8 bpp surfaces.

  • Loading branch information
slouken committed Oct 15, 2002
1 parent 25d0667 commit ccd2d08ddfaed989ac89bac1f395adc7940fd00b
Showing with 30 additions and 0 deletions.
  1. +30 −0 src/video/SDL_surface.c
@@ -524,6 +524,20 @@ int SDL_UpperBlit (SDL_Surface *src, SDL_Rect *srcrect,
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 SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color)
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 */

0 comments on commit ccd2d08

Please sign in to comment.