Only set colorkey, if converted surface has no alpha channel (2979)

This commit is contained in:
Sylvain Becker 2020-05-17 21:23:17 +02:00
parent f6197aec85
commit db4246f695

View File

@ -1116,9 +1116,13 @@ SDL_ConvertSurface(SDL_Surface * surface, const SDL_PixelFormat * format,
/* The palette is identical, just set the same colorkey */ /* The palette is identical, just set the same colorkey */
SDL_SetColorKey(convert, 1, surface->map->info.colorkey); SDL_SetColorKey(convert, 1, surface->map->info.colorkey);
} else if (!format->palette) { } else if (!format->palette) {
if (format->Amask) {
/* No need to add the colorkey, transparency is in the alpha channel*/
} else {
/* Only set the colorkey information */
set_colorkey_by_color = SDL_TRUE; set_colorkey_by_color = SDL_TRUE;
/* Was done by 'palette_ck_transform' */
convert_colorkey = SDL_FALSE; convert_colorkey = SDL_FALSE;
}
} else { } else {
set_colorkey_by_color = SDL_TRUE; set_colorkey_by_color = SDL_TRUE;
} }