From bf0ad88ff54ec4ae5d51636060d20182b89b7e98 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 3cc685c086dfb..89e68884252bd 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -1353,7 +1353,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; @@ -1447,8 +1446,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 */ @@ -1469,7 +1466,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; } @@ -1590,8 +1586,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); }