瀏覽代碼

Merge pull request #5090 from Laserlicht/fix_prescale

fix margin if image prescaled and not equal to current scaling
Ivan Savenko 11 月之前
父節點
當前提交
4e30af287e
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      client/renderSDL/SDLImage.cpp

+ 8 - 0
client/renderSDL/SDLImage.cpp

@@ -19,6 +19,8 @@
 #include "../render/CDefFile.h"
 #include "../render/Graphics.h"
 #include "../xBRZ/xbrz.h"
+#include "../gui/CGuiHandler.h"
+#include "../render/IScreenHandler.h"
 
 #include <tbb/parallel_for.h>
 #include <SDL_surface.h>
@@ -276,6 +278,12 @@ 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<const ISharedImage> SDLImageShared::scaleInteger(int factor, SDL_Palette * palette, EImageBlitMode mode) const