stretchedfixedmode: add resizable interface scaling
This commit is contained in:
@@ -297,7 +297,7 @@ public class Hooks implements Callbacks
|
||||
notifier.processFlash(graphics2d);
|
||||
|
||||
// Stretch the game image if the user has that enabled
|
||||
if (!client.isResized() && client.isStretchedEnabled())
|
||||
if (client.isStretchedEnabled())
|
||||
{
|
||||
GraphicsConfiguration gc = clientUi.getGraphicsConfiguration();
|
||||
Dimension stretchedDimensions = client.getStretchedDimensions();
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface StretchedFixedModeConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "keepAspectRatio",
|
||||
name = "Keep aspect ratio",
|
||||
description = "Keeps the aspect ratio when stretching"
|
||||
description = "Keeps the aspect ratio when stretching."
|
||||
)
|
||||
default boolean keepAspectRatio()
|
||||
{
|
||||
@@ -45,7 +45,7 @@ public interface StretchedFixedModeConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "increasedPerformance",
|
||||
name = "Increased performance mode",
|
||||
description = "Uses a fast algorithm when stretching, lowering quality but increasing performance"
|
||||
description = "Uses a fast algorithm when stretching, lowering quality but increasing performance."
|
||||
)
|
||||
default boolean increasedPerformance()
|
||||
{
|
||||
@@ -55,10 +55,20 @@ public interface StretchedFixedModeConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "integerScaling",
|
||||
name = "Integer Scaling",
|
||||
description = "Forces use of a whole number scale factor"
|
||||
description = "Forces use of a whole number scale factor when stretching."
|
||||
)
|
||||
default boolean integerScaling()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "scalingFactor",
|
||||
name = "Resizable Scaling (%)",
|
||||
description = "In resizable mode, the game is reduced in size this much before it's stretched."
|
||||
)
|
||||
default int scalingFactor()
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,9 @@ import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.CanvasSizeChanged;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.ResizeableChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.input.MouseManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -83,6 +85,18 @@ public class StretchedFixedModePlugin extends Plugin
|
||||
mouseManager.unregisterMouseWheelListener(mouseWheelListener);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onResizableChanged(ResizeableChanged event)
|
||||
{
|
||||
client.invalidateStretching(true);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onCanvasSizeChanged(CanvasSizeChanged event)
|
||||
{
|
||||
client.invalidateStretching(false);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
@@ -99,5 +113,8 @@ public class StretchedFixedModePlugin extends Plugin
|
||||
client.setStretchedIntegerScaling(config.integerScaling());
|
||||
client.setStretchedKeepAspectRatio(config.keepAspectRatio());
|
||||
client.setStretchedFast(config.increasedPerformance());
|
||||
client.setScalingFactor(config.scalingFactor());
|
||||
|
||||
client.invalidateStretching(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import java.awt.Dimension;
|
||||
import java.awt.event.MouseEvent;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.input.MouseListener;
|
||||
|
||||
public class TranslateMouseListener implements MouseListener
|
||||
@@ -87,17 +86,13 @@ public class TranslateMouseListener implements MouseListener
|
||||
|
||||
private MouseEvent translateEvent(MouseEvent e)
|
||||
{
|
||||
if (!client.isResized())
|
||||
{
|
||||
Dimension stretchedDimensions = client.getStretchedDimensions();
|
||||
Dimension stretchedDimensions = client.getStretchedDimensions();
|
||||
Dimension realDimensions = client.getRealDimensions();
|
||||
|
||||
int newX = (int) (e.getX() / (stretchedDimensions.width / (double) Constants.GAME_FIXED_WIDTH));
|
||||
int newY = (int) (e.getY() / (stretchedDimensions.height / (double) Constants.GAME_FIXED_HEIGHT));
|
||||
int newX = (int) (e.getX() / (stretchedDimensions.width / realDimensions.getWidth()));
|
||||
int newY = (int) (e.getY() / (stretchedDimensions.height / realDimensions.getHeight()));
|
||||
|
||||
return new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiersEx(),
|
||||
newX, newY, e.getClickCount(), e.isPopupTrigger(), e.getButton());
|
||||
}
|
||||
|
||||
return e;
|
||||
return new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiersEx(),
|
||||
newX, newY, e.getClickCount(), e.isPopupTrigger(), e.getButton());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import java.awt.Dimension;
|
||||
import java.awt.event.MouseWheelEvent;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.input.MouseWheelListener;
|
||||
|
||||
public class TranslateMouseWheelListener implements MouseWheelListener
|
||||
@@ -51,17 +50,13 @@ public class TranslateMouseWheelListener implements MouseWheelListener
|
||||
|
||||
private MouseWheelEvent translateEvent(MouseWheelEvent e)
|
||||
{
|
||||
if (!client.isResized())
|
||||
{
|
||||
Dimension stretchedDimensions = client.getStretchedDimensions();
|
||||
Dimension stretchedDimensions = client.getStretchedDimensions();
|
||||
Dimension realDimensions = client.getRealDimensions();
|
||||
|
||||
int newX = (int) (e.getX() / (stretchedDimensions.width / (double) Constants.GAME_FIXED_WIDTH));
|
||||
int newY = (int) (e.getY() / (stretchedDimensions.height / (double) Constants.GAME_FIXED_HEIGHT));
|
||||
int newX = (int) (e.getX() / (stretchedDimensions.width / realDimensions.getWidth()));
|
||||
int newY = (int) (e.getY() / (stretchedDimensions.height / realDimensions.getHeight()));
|
||||
|
||||
return new MouseWheelEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiers(), newX, newY,
|
||||
e.getClickCount(), e.isPopupTrigger(), e.getScrollType(), e.getScrollAmount(), e.getWheelRotation());
|
||||
}
|
||||
|
||||
return e;
|
||||
return new MouseWheelEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiers(), newX, newY,
|
||||
e.getClickCount(), e.isPopupTrigger(), e.getScrollType(), e.getScrollAmount(), e.getWheelRotation());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user