Skip to content

Commit

Permalink
imageScaleNNAA: Fix image clipping on rect- instead of image dimensio…
Browse files Browse the repository at this point in the history
…ns (#9896)

Fixes GUI scaling filters applied on animated images and 9slice backgrounds.
  • Loading branch information
Hugues Ross committed Jun 1, 2020
1 parent 51de4ae commit f849917
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/client/imagefilters.cpp
Expand Up @@ -91,7 +91,7 @@ void imageScaleNNAA(video::IImage *src, const core::rect<s32> &srcrect, video::I
u32 dy, dx;
video::SColor pxl;

// Cache rectsngle boundaries.
// Cache rectangle boundaries.
double sox = srcrect.UpperLeftCorner.X * 1.0;
double soy = srcrect.UpperLeftCorner.Y * 1.0;
double sw = srcrect.getWidth() * 1.0;
Expand All @@ -107,15 +107,15 @@ void imageScaleNNAA(video::IImage *src, const core::rect<s32> &srcrect, video::I
// Do some basic clipping, and for mirrored/flipped rects,
// make sure min/max are in the right order.
minsx = sox + (dx * sw / dim.Width);
minsx = rangelim(minsx, 0, sw);
minsx = rangelim(minsx, 0, sox + sw);
maxsx = minsx + sw / dim.Width;
maxsx = rangelim(maxsx, 0, sw);
maxsx = rangelim(maxsx, 0, sox + sw);
if (minsx > maxsx)
SWAP(double, minsx, maxsx);
minsy = soy + (dy * sh / dim.Height);
minsy = rangelim(minsy, 0, sh);
minsy = rangelim(minsy, 0, soy + sh);
maxsy = minsy + sh / dim.Height;
maxsy = rangelim(maxsy, 0, sh);
maxsy = rangelim(maxsy, 0, soy + sh);
if (minsy > maxsy)
SWAP(double, minsy, maxsy);

Expand Down

0 comments on commit f849917

Please sign in to comment.