From b89eada0b9129349e7c32e4d1911c65156ac3c40 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 6 Dec 2008 05:49:53 +0000 Subject: [PATCH] Fixed SDL_SetAlpha compatibility function to match the documentation --- src/SDL_compat.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SDL_compat.c b/src/SDL_compat.c index e92e7fa0a..925df7a94 100644 --- a/src/SDL_compat.c +++ b/src/SDL_compat.c @@ -686,16 +686,19 @@ SDL_GetVideoSurface(void) 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; }