From 3beb78104e220a07994fcc02ca174c51d0a85c2f Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:05:30 +0100 Subject: [PATCH] fix margin (hd texture) --- client/renderSDL/SDLImage.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/client/renderSDL/SDLImage.cpp b/client/renderSDL/SDLImage.cpp index 1f5932094..aff2aafc3 100644 --- a/client/renderSDL/SDLImage.cpp +++ b/client/renderSDL/SDLImage.cpp @@ -278,12 +278,6 @@ void SDLImageShared::optimizeSurface() margins.x += left; margins.y += top; } - - if(preScaleFactor > 1 && preScaleFactor != GH.screenHandler().getScalingFactor()) - { - margins.x = margins.x * GH.screenHandler().getScalingFactor() / preScaleFactor; - margins.y = margins.y * GH.screenHandler().getScalingFactor() / preScaleFactor; - } } std::shared_ptr SDLImageShared::scaleInteger(int factor, SDL_Palette * palette, EImageBlitMode mode) const @@ -309,15 +303,15 @@ std::shared_ptr SDLImageShared::scaleInteger(int factor, SDL scaled = CSDL_Ext::scaleSurfaceIntegerFactor(surf, factor, EScalingAlgorithm::XBRZ_ALPHA); } else - scaled = CSDL_Ext::scaleSurface(surf, (surf->w / preScaleFactor) * factor, (surf->h / preScaleFactor) * factor); + scaled = CSDL_Ext::scaleSurface(surf, (int) round((float)surf->w * factor / preScaleFactor), (int) round((float)surf->h * factor / preScaleFactor)); auto ret = std::make_shared(scaled, preScaleFactor); ret->fullSize.x = fullSize.x * factor; ret->fullSize.y = fullSize.y * factor; - ret->margins.x = margins.x * factor; - ret->margins.y = margins.y * factor; + ret->margins.x = (int) round((float)margins.x * factor / preScaleFactor); + ret->margins.y = (int) round((float)margins.y * factor / preScaleFactor); ret->optimizeSurface(); // erase our own reference