# HG changeset patch # User Sam Lantinga # Date 1228542593 0 # Node ID 00356f22195aad2fc0d4eef073920d9bdb00dfdd # Parent ff8db79a3cc9d9339c1a870afb9561d3caec3804 Fixed SDL_SetAlpha compatibility function to match the documentation diff -r ff8db79a3cc9 -r 00356f22195a src/SDL_compat.c --- a/src/SDL_compat.c Sat Dec 06 05:49:08 2008 +0000 +++ b/src/SDL_compat.c Sat Dec 06 05:49:53 2008 +0000 @@ -686,16 +686,19 @@ int SDL_SetAlpha(SDL_Surface * surface, Uint32 flag, Uint8 value) { - if (flag & SDL_RLEACCEL) { - SDL_SetSurfaceRLE(surface, 1); - } - if (flag) { + if (flag & SDL_SRCALPHA) { + /* According to the docs, value is ignored for alpha surfaces */ + if (surface->format->Amask) { + value = 0xFF; + } SDL_SetSurfaceAlphaMod(surface, value); SDL_SetSurfaceBlendMode(surface, SDL_TEXTUREBLENDMODE_BLEND); } else { SDL_SetSurfaceAlphaMod(surface, 0xFF); SDL_SetSurfaceBlendMode(surface, SDL_TEXTUREBLENDMODE_NONE); } + SDL_SetSurfaceRLE(surface, (flag & SDL_RLEACCEL)); + return 0; }