aboutsummaryrefslogtreecommitdiffstats
path: root/src/newt
diff options
context:
space:
mode:
Diffstat (limited to 'src/newt')
-rw-r--r--src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java2
-rw-r--r--src/newt/classes/com/jogamp/newt/opengl/GLWindow.java4
-rw-r--r--src/newt/classes/jogamp/newt/WindowImpl.java8
-rw-r--r--src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java2
-rw-r--r--src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java8
5 files changed, 16 insertions, 8 deletions
diff --git a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
index baaa69e8e..f5e4ff43f 100644
--- a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
+++ b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
@@ -865,7 +865,7 @@ public class NewtCanvasAWT extends java.awt.Canvas implements WindowClosingProto
}
newtChild.setVisible(false);
newtChild.setSize(w, h);
- jawtWindow.setSurfaceScale(newtChild.getSurfaceScale(new int[2]));
+ jawtWindow.setSurfaceScale(null, newtChild.getSurfaceScale(new int[2]));
newtChild.reparentWindow(jawtWindow, -1, -1, Window.REPARENT_HINT_BECOMES_VISIBLE);
newtChild.addSurfaceUpdatedListener(jawtWindow);
if( jawtWindow.isOffscreenLayerSurfaceEnabled() &&
diff --git a/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java b/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java
index 6610bd74f..ae99b7465 100644
--- a/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java
+++ b/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java
@@ -404,8 +404,8 @@ public class GLWindow extends GLAutoDrawableBase implements GLAutoDrawable, Wind
}
@Override
- public final void setSurfaceScale(final int[] pixelScale) {
- window.setSurfaceScale(pixelScale);
+ public final int[] setSurfaceScale(final int[] result, final int[] pixelScale) {
+ return window.setSurfaceScale(result, pixelScale);
}
@Override
diff --git a/src/newt/classes/jogamp/newt/WindowImpl.java b/src/newt/classes/jogamp/newt/WindowImpl.java
index f02b9740d..d68a1dfd4 100644
--- a/src/newt/classes/jogamp/newt/WindowImpl.java
+++ b/src/newt/classes/jogamp/newt/WindowImpl.java
@@ -1968,13 +1968,17 @@ public abstract class WindowImpl implements Window, NEWTEventConsumer
}
@Override
- public void setSurfaceScale(final int[] pixelScale) {
+ public int[] setSurfaceScale(final int[] result, final int[] pixelScale) {
SurfaceScaleUtils.validateReqPixelScale(reqPixelScale, pixelScale, DEBUG_IMPLEMENTATION ? getClass().getSimpleName() : null);
+ if( null != result ) {
+ System.arraycopy(reqPixelScale, 0, result, 0, 2);
+ }
+ return result;
}
@Override
public final int[] getSurfaceScale(final int[] result) {
- System.arraycopy(isNativeValid() ? hasPixelScale : reqPixelScale, 0, result, 0, 2);
+ System.arraycopy(hasPixelScale, 0, result, 0, 2);
return result;
}
diff --git a/src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java b/src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java
index d01a2f21f..e3c4e3b87 100644
--- a/src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java
+++ b/src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java
@@ -146,7 +146,7 @@ public class AWTCanvas extends Canvas {
{
jawtWindow = (JAWTWindow) NativeWindowFactory.getNativeWindow(this, awtConfig);
// trigger initialization cycle
- jawtWindow.setSurfaceScale( upstreamScale.getReqPixelScale() );
+ jawtWindow.setSurfaceScale(null, upstreamScale.getReqPixelScale() );
jawtWindow.lockSurface();
upstreamScale.setHasPixelScale(jawtWindow.getSurfaceScale(new int[2]));
jawtWindow.unlockSurface();
diff --git a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
index 0fa4739a3..07d31acfd 100644
--- a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
@@ -135,8 +135,11 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
}
@Override
- public final void setSurfaceScale(final int[] pixelScale) {
+ public final int[] setSurfaceScale(final int[] result, final int[] pixelScale) {
SurfaceScaleUtils.validateReqPixelScale(reqPixelScale, pixelScale, DEBUG_IMPLEMENTATION ? getClass().getName() : null);
+ if( null != result ) {
+ System.arraycopy(reqPixelScale, 0, result, 0, 2);
+ }
final int[] resPixelScale;
if( isNativeValid() ) {
@@ -144,7 +147,7 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
final NativeWindow pWin = getParent();
if( pWin instanceof ScalableSurface ) {
final ScalableSurface sSurf = (ScalableSurface)pWin;
- sSurf.setSurfaceScale(reqPixelScale);
+ sSurf.setSurfaceScale(result, reqPixelScale);
final int[] pPixelScale = sSurf.getSurfaceScale(new int[2]);
updatePixelScale(true /* sendEvent */, true /* defer */, pPixelScale[0]); // HiDPI: uniformPixelScale
} else {
@@ -172,6 +175,7 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
reqPixelScale[0]+"x"+reqPixelScale[1]+" (validated) -> "+
resPixelScale[0]+"x"+resPixelScale[1]+" (result) - realized "+isNativeValid());
}
+ return result;
}
@Override