From 1f3b2fc8b3cf2443387d953a6271642ade1cdeda Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 20 Jul 2024 18:44:23 -0700 Subject: [PATCH] SDL_BlitSurfaceUnchecked() should invalidate the map when switching from scaled to unscaled blits --- src/video/SDL_surface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index 0d73fca434..a1c96c1d95 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -855,6 +855,12 @@ int SDL_GetSurfaceClipRect(SDL_Surface *surface, SDL_Rect *rect) int SDL_BlitSurfaceUnchecked(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, const SDL_Rect *dstrect) { + /* Switch back to a fast blit if we were previously stretching */ + if (src->internal->map.info.flags & SDL_COPY_NEAREST) { + src->internal->map.info.flags &= ~SDL_COPY_NEAREST; + SDL_InvalidateMap(&src->internal->map); + } + /* Check to make sure the blit mapping is valid */ if ((src->internal->map.dst != dst) || (dst->internal->palette && @@ -942,12 +948,6 @@ int SDL_BlitSurface(SDL_Surface *src, const SDL_Rect *srcrect, return 0; } - /* Switch back to a fast blit if we were previously stretching */ - if (src->internal->map.info.flags & SDL_COPY_NEAREST) { - src->internal->map.info.flags &= ~SDL_COPY_NEAREST; - SDL_InvalidateMap(&src->internal->map); - } - return SDL_BlitSurfaceUnchecked(src, &r_src, dst, &r_dst); }