mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
SDL_BlitSurfaceUnchecked() should invalidate the map when switching from scaled to unscaled blits
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user