mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2025-12-09 16:45:46 -07:00
Change canvas scaling to read from the current device
This commit is contained in:
parent
240862d626
commit
f65909dc06
2 changed files with 16 additions and 31 deletions
|
|
@ -229,22 +229,6 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene
|
||||||
container.add(canvas);
|
container.add(canvas);
|
||||||
canvas.setSize(canvasWidth, canvasHeight);
|
canvas.setSize(canvasWidth, canvasHeight);
|
||||||
canvas.setVisible(true);
|
canvas.setVisible(true);
|
||||||
Graphics g = canvas.getGraphics();
|
|
||||||
if (g != null) {
|
|
||||||
if (g instanceof Graphics2D) {
|
|
||||||
canvasScale = ((Graphics2D) g).getTransform().getScaleX();
|
|
||||||
} else {
|
|
||||||
canvasScale = 1.0d;
|
|
||||||
}
|
|
||||||
if (Math.floor(canvasScale) != canvasScale) {
|
|
||||||
subpixelX = 0.0d;
|
|
||||||
subpixelY = -0.5d;
|
|
||||||
} else {
|
|
||||||
subpixelX = 0.5d;
|
|
||||||
subpixelY = 0.5d;
|
|
||||||
}
|
|
||||||
System.out.println("Scaling factor: " + canvasScale + "x, using fractional scaling");
|
|
||||||
}
|
|
||||||
if (container == frame) {
|
if (container == frame) {
|
||||||
@Pc(66) Insets insets = frame.getInsets();
|
@Pc(66) Insets insets = frame.getInsets();
|
||||||
canvas.setLocation(leftMargin + insets.left, insets.top + topMargin);
|
canvas.setLocation(leftMargin + insets.left, insets.top + topMargin);
|
||||||
|
|
@ -383,6 +367,19 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GraphicsDevice getCurrentDevice() {
|
||||||
|
GraphicsConfiguration config = frame.getGraphicsConfiguration();
|
||||||
|
GraphicsDevice myScreen = config.getDevice();
|
||||||
|
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||||
|
GraphicsDevice[] allScreens = env.getScreenDevices();
|
||||||
|
for (int i = 0; i < allScreens.length; i++) {
|
||||||
|
if (allScreens[i].equals(myScreen)) {
|
||||||
|
return allScreens[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@OriginalMember(owner = "client!rc", name = "e", descriptor = "(I)V")
|
@OriginalMember(owner = "client!rc", name = "e", descriptor = "(I)V")
|
||||||
private void mainRedrawWrapper() {
|
private void mainRedrawWrapper() {
|
||||||
@Pc(2) long now = MonotonicClock.currentTimeMillis();
|
@Pc(2) long now = MonotonicClock.currentTimeMillis();
|
||||||
|
|
@ -398,21 +395,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene
|
||||||
partialRedraws -= 50;
|
partialRedraws -= 50;
|
||||||
canvas.setSize(canvasWidth, canvasHeight);
|
canvas.setSize(canvasWidth, canvasHeight);
|
||||||
canvas.setVisible(true);
|
canvas.setVisible(true);
|
||||||
Graphics g = canvas.getGraphics();
|
canvasScale = getCurrentDevice().getDefaultConfiguration().getDefaultTransform().getScaleX();
|
||||||
if (g != null) {
|
|
||||||
if (g instanceof Graphics2D) {
|
|
||||||
canvasScale = ((Graphics2D) g).getTransform().getScaleX();
|
|
||||||
if (Math.floor(canvasScale) != canvasScale) {
|
|
||||||
subpixelX = 0.0d;
|
|
||||||
subpixelY = -0.5d;
|
|
||||||
} else {
|
|
||||||
subpixelX = 0.5d;
|
|
||||||
subpixelY = 0.5d;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
canvasScale = 1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (frame != null && fullScreenFrame == null) {
|
if (frame != null && fullScreenFrame == null) {
|
||||||
@Pc(84) Insets insets = frame.getInsets();
|
@Pc(84) Insets insets = frame.getInsets();
|
||||||
canvas.setLocation(insets.left + leftMargin, topMargin + insets.top);
|
canvas.setLocation(insets.left + leftMargin, topMargin + insets.top);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import java.applet.Applet;
|
import java.applet.Applet;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.EventQueue;
|
import java.awt.EventQueue;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
|
|
@ -375,6 +376,7 @@ public final class SignLink implements Runnable {
|
||||||
@Pc(168) Frame frame = new Frame("Jagex Full Screen");
|
@Pc(168) Frame frame = new Frame("Jagex Full Screen");
|
||||||
request.result = frame;
|
request.result = frame;
|
||||||
frame.setResizable(false);
|
frame.setResizable(false);
|
||||||
|
frame.setBackground(Color.black);
|
||||||
this.fullScreenManager.enter(request.intArg1 & 0xFFFF, request.intArg1 >> 16, request.intArg2 & 0xFFFF, frame, request.intArg2 >>> 16);
|
this.fullScreenManager.enter(request.intArg1 & 0xFFFF, request.intArg1 >> 16, request.intArg2 & 0xFFFF, frame, request.intArg2 >>> 16);
|
||||||
} else if (type == 7) {
|
} else if (type == 7) {
|
||||||
this.fullScreenManager.exit();
|
this.fullScreenManager.exit();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue