diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index 6658ae8df5..d96dc7fb4e 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -1314,7 +1314,8 @@ bool SDL_BlitSurfaceUncheckedScaled(SDL_Surface *src, const SDL_Rect *srcrect, S // Change source format if not appropriate for scaling if (SDL_BYTESPERPIXEL(src->format) != 4 || src->format == SDL_PIXELFORMAT_ARGB2101010) { SDL_PixelFormat fmt; - if (SDL_BYTESPERPIXEL(dst->format) == 4 && dst->format != SDL_PIXELFORMAT_ARGB2101010) { + if (SDL_BYTESPERPIXEL(dst->format) == 4 && dst->format != SDL_PIXELFORMAT_ARGB2101010 && + (SDL_ISPIXELFORMAT_ALPHA(dst->format) || !is_complex_copy_flags)) { fmt = dst->format; } else { fmt = SDL_PIXELFORMAT_ARGB8888;