# HG changeset patch # User Sam Lantinga # Date 1239613415 0 # Node ID 34068be6aa0b7cd5f0d96752e46a67659681fe4e # Parent 48f1406df2a840a92ec0006b7473eb14c3752383 Fixed bug #421 Comment #3 From esigra@gmail.com 2008-04-09 11:46:46 (-) [reply] ------- This bug also needs to be fixed for SDL_GetRGB and SDL_GetRGBA (those should not change the format of the surface either). Until this is fixed, I still need to const_cast the format parameter in calls to those functions. diff -r 48f1406df2a8 -r 34068be6aa0b include/SDL_video.h --- a/include/SDL_video.h Mon Apr 13 08:49:41 2009 +0000 +++ b/include/SDL_video.h Mon Apr 13 09:03:35 2009 +0000 @@ -460,14 +460,16 @@ /* * Maps a pixel value into the RGB components for a given pixel format */ -extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, SDL_PixelFormat *fmt, +extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, + const SDL_PixelFormat * const fmt, Uint8 *r, Uint8 *g, Uint8 *b); /* * Maps a pixel value into the RGBA components for a given pixel format */ -extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, SDL_PixelFormat *fmt, - Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a); +extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, + const SDL_PixelFormat * const fmt, + Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a); /* * Allocate and free an RGB surface (must be called after SDL_SetVideoMode) diff -r 48f1406df2a8 -r 34068be6aa0b src/video/SDL_pixels.c --- a/src/video/SDL_pixels.c Mon Apr 13 08:49:41 2009 +0000 +++ b/src/video/SDL_pixels.c Mon Apr 13 09:03:35 2009 +0000 @@ -366,7 +366,7 @@ } } -void SDL_GetRGBA(Uint32 pixel, SDL_PixelFormat *fmt, +void SDL_GetRGBA(Uint32 pixel, const SDL_PixelFormat * const fmt, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a) { if ( fmt->palette == NULL ) { @@ -400,7 +400,8 @@ } } -void SDL_GetRGB(Uint32 pixel, SDL_PixelFormat *fmt, Uint8 *r,Uint8 *g,Uint8 *b) +void SDL_GetRGB(Uint32 pixel, const SDL_PixelFormat * const fmt, + Uint8 *r,Uint8 *g,Uint8 *b) { if ( fmt->palette == NULL ) { /* the note for SDL_GetRGBA above applies here too */