mirror of https://github.com/encounter/SDL.git
Fixed bug 2123 - SDL_BlitScaled crashes in src/video/SDL_blit_N.c:2145
We need to reset the blit function when switching between scaled and unscaled blits.
This commit is contained in:
parent
a329c7f1c9
commit
379c0054dc
|
@ -596,6 +596,12 @@ SDL_UpperBlit(SDL_Surface * src, const SDL_Rect * srcrect,
|
||||||
h -= dy;
|
h -= dy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Switch back to a fast blit if we were previously stretching */
|
||||||
|
if (src->map->info.flags & SDL_COPY_NEAREST) {
|
||||||
|
src->map->info.flags &= ~SDL_COPY_NEAREST;
|
||||||
|
SDL_InvalidateMap(src->map);
|
||||||
|
}
|
||||||
|
|
||||||
if (w > 0 && h > 0) {
|
if (w > 0 && h > 0) {
|
||||||
SDL_Rect sr;
|
SDL_Rect sr;
|
||||||
sr.x = srcx;
|
sr.x = srcx;
|
||||||
|
@ -747,7 +753,10 @@ SDL_LowerBlitScaled(SDL_Surface * src, SDL_Rect * srcrect,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!(src->map->info.flags & SDL_COPY_NEAREST)) {
|
||||||
src->map->info.flags |= SDL_COPY_NEAREST;
|
src->map->info.flags |= SDL_COPY_NEAREST;
|
||||||
|
SDL_InvalidateMap(src->map);
|
||||||
|
}
|
||||||
|
|
||||||
if ( !(src->map->info.flags & complex_copy_flags) &&
|
if ( !(src->map->info.flags & complex_copy_flags) &&
|
||||||
src->format->format == dst->format->format &&
|
src->format->format == dst->format->format &&
|
||||||
|
|
Loading…
Reference in New Issue