src/macosx/classes/sun/java2d/opengl/CGLLayer.java
Print this page
*** 38,52 ****
import java.awt.Transparency;
public class CGLLayer extends CFRetainedResource {
private native long nativeCreateLayer();
!
private static native void validate(long layerPtr, CGLSurfaceData cglsd);
private static native void blitTexture(long layerPtr);
private LWWindowPeer peer;
private SurfaceData surfaceData; // represents intermediate buffer (texture)
public CGLLayer(LWWindowPeer peer) {
super(0, true);
--- 38,53 ----
import java.awt.Transparency;
public class CGLLayer extends CFRetainedResource {
private native long nativeCreateLayer();
! private static native void nativeSetScale(long layerPtr, double scale);
private static native void validate(long layerPtr, CGLSurfaceData cglsd);
private static native void blitTexture(long layerPtr);
private LWWindowPeer peer;
+ private int scale = 1;
private SurfaceData surfaceData; // represents intermediate buffer (texture)
public CGLLayer(LWWindowPeer peer) {
super(0, true);
*** 88,98 ****
// the layer redirects all painting to the buffer's graphics
// and blits the buffer to the layer surface (in drawInCGLContext callback)
CGraphicsConfig gc = (CGraphicsConfig)peer.getGraphicsConfiguration();
surfaceData = gc.createSurfaceData(this);
!
// the layer holds a reference to the buffer, which in
// turn has a reference back to this layer
if (surfaceData instanceof CGLSurfaceData) {
validate((CGLSurfaceData)surfaceData);
}
--- 89,99 ----
// the layer redirects all painting to the buffer's graphics
// and blits the buffer to the layer surface (in drawInCGLContext callback)
CGraphicsConfig gc = (CGraphicsConfig)peer.getGraphicsConfiguration();
surfaceData = gc.createSurfaceData(this);
! setScale(gc.getDevice().getScaleFactor());
// the layer holds a reference to the buffer, which in
// turn has a reference back to this layer
if (surfaceData instanceof CGLSurfaceData) {
validate((CGLSurfaceData)surfaceData);
}
*** 119,128 ****
--- 120,136 ----
// break the connection between the layer and the buffer
validate(null);
super.dispose();
}
+ private void setScale(final int _scale) {
+ if (scale != _scale) {
+ scale = _scale;
+ nativeSetScale(getPointer(), scale);
+ }
+ }
+
// ----------------------------------------------------------------------
// NATIVE CALLBACKS
// ----------------------------------------------------------------------
private void drawInCGLContext() {