Merge pull request #6119 from devLotto/resizablescaling
Stretched Resizable Mode
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();
|
||||
|
||||
@@ -23,19 +23,19 @@
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.stretchedfixedmode;
|
||||
package net.runelite.client.plugins.stretchedmode;
|
||||
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
@ConfigGroup("stretchedfixedmode")
|
||||
public interface StretchedFixedModeConfig extends Config
|
||||
@ConfigGroup("stretchedmode")
|
||||
public interface StretchedModeConfig 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;
|
||||
}
|
||||
}
|
||||
@@ -23,31 +23,33 @@
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.stretchedfixedmode;
|
||||
package net.runelite.client.plugins.stretchedmode;
|
||||
|
||||
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;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Stretched Fixed Mode",
|
||||
description = "Resize the game while in fixed mode",
|
||||
tags = {"resize"},
|
||||
name = "Stretched Mode",
|
||||
description = "Stretches the game in fixed and resizable modes.",
|
||||
tags = {"resize", "ui", "interface", "stretch", "scaling", "fixed"},
|
||||
enabledByDefault = false
|
||||
)
|
||||
public class StretchedFixedModePlugin extends Plugin
|
||||
public class StretchedModePlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private StretchedFixedModeConfig config;
|
||||
private StretchedModeConfig config;
|
||||
|
||||
@Inject
|
||||
private MouseManager mouseManager;
|
||||
@@ -59,9 +61,9 @@ public class StretchedFixedModePlugin extends Plugin
|
||||
private TranslateMouseWheelListener mouseWheelListener;
|
||||
|
||||
@Provides
|
||||
StretchedFixedModeConfig provideConfig(ConfigManager configManager)
|
||||
StretchedModeConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(StretchedFixedModeConfig.class);
|
||||
return configManager.getConfig(StretchedModeConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,10 +85,22 @@ 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)
|
||||
{
|
||||
if (!event.getGroup().equals("stretchedfixedmode"))
|
||||
if (!event.getGroup().equals("stretchedmode"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -23,14 +23,13 @@
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.stretchedfixedmode;
|
||||
package net.runelite.client.plugins.stretchedmode;
|
||||
|
||||
import java.awt.Component;
|
||||
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());
|
||||
}
|
||||
}
|
||||
@@ -23,14 +23,13 @@
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.stretchedfixedmode;
|
||||
package net.runelite.client.plugins.stretchedmode;
|
||||
|
||||
import java.awt.Component;
|
||||
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