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:
parent
a733eee1b8
commit
228035d0f3
2 changed files with 2 additions and 5 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue