From db4246f695074745d1ffb60c8b90b07f95c722d0 Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Sun, 17 May 2020 21:23:17 +0200 Subject: [PATCH] Only set colorkey, if converted surface has no alpha channel (2979) --- src/video/SDL_surface.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index 7c2d04bdc..085d9ff1e 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -1116,9 +1116,13 @@ SDL_ConvertSurface(SDL_Surface * surface, const SDL_PixelFormat * format, /* The palette is identical, just set the same colorkey */ SDL_SetColorKey(convert, 1, surface->map->info.colorkey); } else if (!format->palette) { - set_colorkey_by_color = SDL_TRUE; - /* Was done by 'palette_ck_transform' */ - convert_colorkey = SDL_FALSE; + 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; + convert_colorkey = SDL_FALSE; + } } else { set_colorkey_by_color = SDL_TRUE; }