From 98bea25363f21d338e2ff22e1e8622cb7a10fd1b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 16 Jul 2024 18:20:10 -0700 Subject: [PATCH] Converted surfaces with alpha format default to SDL_BLENDMODE_BLEND Fixes https://github.com/libsdl-org/SDL/pull/4690 --- src/video/SDL_surface.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index f2264ab49dbb1..9a6a7bce9d099 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -1354,7 +1354,6 @@ SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelForm int ret; SDL_bool palette_ck_transform = SDL_FALSE; Uint8 palette_ck_value = 0; - SDL_bool palette_has_alpha = SDL_FALSE; Uint8 *palette_saved_alpha = NULL; int palette_saved_alpha_ncolors = 0; @@ -1449,8 +1448,6 @@ SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelForm if (!has_alpha_channel) { set_opaque = SDL_TRUE; } - } else { - palette_has_alpha = SDL_TRUE; } /* Set opaque and backup palette alpha values */ @@ -1471,7 +1468,6 @@ SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelForm if (copy_flags & SDL_COPY_COLORKEY) { if (surface->internal->palette && !palette) { palette_ck_transform = SDL_TRUE; - palette_has_alpha = SDL_TRUE; palette_ck_value = surface->internal->palette->colors[surface->internal->map.info.colorkey].a; surface->internal->palette->colors[surface->internal->map.info.colorkey].a = SDL_ALPHA_TRANSPARENT; } @@ -1592,8 +1588,7 @@ SDL_Surface *SDL_ConvertSurfaceAndColorspace(SDL_Surface *surface, SDL_PixelForm /* Enable alpha blending by default if the new surface has an * alpha channel or alpha modulation */ - if ((SDL_ISPIXELFORMAT_ALPHA(surface->format) && SDL_ISPIXELFORMAT_ALPHA(format)) || - (palette_has_alpha && SDL_ISPIXELFORMAT_ALPHA(format)) || + if (SDL_ISPIXELFORMAT_ALPHA(format) || (copy_flags & SDL_COPY_MODULATE_ALPHA)) { SDL_SetSurfaceBlendMode(convert, SDL_BLENDMODE_BLEND); }