From 78ffe808056c8efaa717f629a740fee5a8765a29 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 9 Nov 2018 15:51:44 +0100 Subject: [PATCH 1/2] Unlimit stretched resizable mode The limits are no longer necessary as it is limited anyway to fixed mode base size, and with new method of scaling the 100% max is quite limiting. Signed-off-by: Tomas Slusny --- .../src/main/java/net/runelite/mixins/StretchedModeMixin.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java index a8f7acc50c..376c865844 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java @@ -24,7 +24,6 @@ */ package net.runelite.mixins; -import com.google.common.primitives.Ints; import java.awt.Container; import java.awt.Dimension; import net.runelite.api.Constants; @@ -102,8 +101,6 @@ public abstract class StretchedModeMixin implements RSClient @Override public void setScalingFactor(int factor) { - factor = Ints.constrainToRange(factor, 0, 100); - scalingFactor = 1 + (factor / 100D); } From 11b01218149bb919c96ddcac1c9fba31e29b0c25 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 9 Nov 2018 16:37:37 +0100 Subject: [PATCH 2/2] Properly limit scaling factor for stretched resizable Instead of limiting width and height when stretching to fixed mode size, limit scaling factor to fixed mode size to prevent improportional stretching in resizable mode. Signed-off-by: Tomas Slusny --- .../net/runelite/mixins/StretchedModeMixin.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java index 376c865844..6e24a8f701 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/StretchedModeMixin.java @@ -122,8 +122,18 @@ public abstract class StretchedModeMixin implements RSClient int parentWidth = canvasParent.getWidth(); int parentHeight = canvasParent.getHeight(); - int newWidth = Math.max(Constants.GAME_FIXED_WIDTH, (int) (parentWidth / scalingFactor)); - int newHeight = Math.max(Constants.GAME_FIXED_HEIGHT, (int) (parentHeight / scalingFactor)); + int newWidth = (int) (parentWidth / scalingFactor); + int newHeight = (int) (parentHeight / scalingFactor); + + if (newWidth < Constants.GAME_FIXED_WIDTH || newHeight < Constants.GAME_FIXED_HEIGHT) + { + double scalingFactorW = (double)parentWidth / Constants.GAME_FIXED_WIDTH; + double scalingFactorH = (double)parentHeight / Constants.GAME_FIXED_HEIGHT; + double scalingFactor = Math.min(scalingFactorW, scalingFactorH); + + newWidth = (int) (parentWidth / scalingFactor); + newHeight = (int) (parentHeight / scalingFactor); + } cachedRealDimensions = new Dimension(newWidth, newHeight); }