It turns out both the software and the OpenGL renderer had the same problem.

According to the spec, when SDL_SRCALPHA is set, the colorkey is ignored, so
we just need to convert the colorkey into the alpha channel.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403248
This commit is contained in:
Sam Lantinga 2008-11-25 05:29:14 +00:00
parent a733eee1b8
commit 228035d0f3
2 changed files with 2 additions and 5 deletions

View file

@ -270,7 +270,7 @@ SDL_SetColorKey(SDL_Surface * surface, Uint32 flag, Uint32 key)
}
/* This is a fairly slow function to switch from colorkey to alpha */
void
static void
SDL_ConvertColorkeyToAlpha(SDL_Surface * surface)
{
int x, y;
@ -813,6 +813,7 @@ SDL_ConvertSurface(SDL_Surface * surface,
&keyG, &keyB, &keyA);
SDL_SetColorKey(convert, 1,
SDL_MapRGBA(convert->format, keyR, keyG, keyB, keyA));
SDL_ConvertColorkeyToAlpha(convert);
}
convert->map->info.r = surface->map->info.r;
convert->map->info.g = surface->map->info.g;