< prev index next >
src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java
Print this page
*** 30,40 ****
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.Insets;
import java.awt.Window;
import java.util.Objects;
!
import sun.java2d.opengl.CGLGraphicsConfig;
public final class CGraphicsDevice extends GraphicsDevice
implements DisplayChangedListener {
--- 30,40 ----
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.Insets;
import java.awt.Window;
import java.util.Objects;
! import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.opengl.CGLGraphicsConfig;
public final class CGraphicsDevice extends GraphicsDevice
implements DisplayChangedListener {
*** 138,148 ****
@Override
public void displayChanged() {
xResolution = nativeGetXResolution(displayID);
yResolution = nativeGetYResolution(displayID);
! scale = (int) nativeGetScaleFactor(displayID);
//TODO configs/fullscreenWindow/modes?
}
@Override
public void paletteChanged() {
--- 138,148 ----
@Override
public void displayChanged() {
xResolution = nativeGetXResolution(displayID);
yResolution = nativeGetYResolution(displayID);
! initScaleFactor();
//TODO configs/fullscreenWindow/modes?
}
@Override
public void paletteChanged() {
*** 247,256 ****
--- 247,267 ----
@Override
public DisplayMode[] getDisplayModes() {
return nativeGetDisplayModes(displayID);
}
+ private void initScaleFactor() {
+ if (SunGraphicsEnvironment.isUIScaleEnabled()) {
+ double debugScale = SunGraphicsEnvironment.getDebugScale();
+ scale = (int) (debugScale >= 1
+ ? Math.round(debugScale)
+ : nativeGetScaleFactor(displayID));
+ } else {
+ scale = 1;
+ }
+ }
+
private static native double nativeGetScaleFactor(int displayID);
private static native void nativeSetDisplayMode(int displayID, int w, int h, int bpp, int refrate);
private static native DisplayMode nativeGetDisplayMode(int displayID);
< prev index next >