CODE:
SDL_Color *colors,*temp;
int i, length;
- if ( items < 3 ) { RETVAL = 0; goto all_done; }
+ if ( items < 3 ) { RETVAL = 0;}
+ else
+ {
length = items - 2;
colors = (SDL_Color *)safemalloc(sizeof(SDL_Color)*(length+1));
for ( i = 0; i < length ; i++ ) {
}
RETVAL = SDL_SetColors(surface, colors, start, length );
safefree(colors);
+ }
- all_done:
OUTPUT:
RETVAL
+int
+video_set_palette ( surface, flags, start, ... )
+ SDL_Surface *surface
+ int flags
+ int start
+
+ CODE:
+ SDL_Color *colors,*temp;
+ int i, length;
+ if ( items < 4 ) {
+ RETVAL = 0;
+ }
+ else
+ {
+ length = items - 3;
+ colors = (SDL_Color *)safemalloc(sizeof(SDL_Color)*(length+1));
+ for ( i = 0; i < length ; i++ ){
+ temp = (SDL_Color *)SvIV(ST(i+3));
+ colors[i].r = temp->r;
+ colors[i].g = temp->g;
+ colors[i].b = temp->b;
+ }
+ RETVAL = SDL_SetPalette(surface, flags, colors, start, length );
+ safefree(colors);
+ }
+ OUTPUT:
+ RETVAL