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);
|
||||
canvas.setSize(canvasWidth, canvasHeight);
|
||||
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) {
|
||||
@Pc(66) Insets insets = frame.getInsets();
|
||||
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")
|
||||
private void mainRedrawWrapper() {
|
||||
@Pc(2) long now = MonotonicClock.currentTimeMillis();
|
||||
|
|
@ -398,21 +395,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene
|
|||
partialRedraws -= 50;
|
||||
canvas.setSize(canvasWidth, canvasHeight);
|
||||
canvas.setVisible(true);
|
||||
Graphics g = canvas.getGraphics();
|
||||
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;
|
||||
}
|
||||
}
|
||||
canvasScale = getCurrentDevice().getDefaultConfiguration().getDefaultTransform().getScaleX();
|
||||
if (frame != null && fullScreenFrame == null) {
|
||||
@Pc(84) Insets insets = frame.getInsets();
|
||||
canvas.setLocation(insets.left + leftMargin, topMargin + insets.top);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import java.applet.Applet;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Frame;
|
||||
|
|
@ -375,6 +376,7 @@ public final class SignLink implements Runnable {
|
|||
@Pc(168) Frame frame = new Frame("Jagex Full Screen");
|
||||
request.result = frame;
|
||||
frame.setResizable(false);
|
||||
frame.setBackground(Color.black);
|
||||
this.fullScreenManager.enter(request.intArg1 & 0xFFFF, request.intArg1 >> 16, request.intArg2 & 0xFFFF, frame, request.intArg2 >>> 16);
|
||||
} else if (type == 7) {
|
||||
this.fullScreenManager.exit();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue