aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-05-26 18:54:27 +0200
committerSven Gothel <[email protected]>2014-05-26 18:54:27 +0200
commit56d60b36798fa8dae48bf2aa5e2de6f3178ab0d1 (patch)
tree4c86190128414205d0b768780e3272e32bd1e81a /src/test
parent98ed02cdb7b325d8afde596a5ef04f97be2018d4 (diff)
Bug 741 HiDPI: Refine Monitor/Screen [virtual] Viewport Definition / Add NEWT Support / Fix JAWT getPixelScale deadlock
- NativeWindow/Surface/NEWT API DOC: Define Coordinate System of Window and Screen - OSXUtil: Add getPixelScale(..) via Screen index and 'windowOrView' - JAWTWindow/JAWTUtil.getPixelScale(..): Use pre-fetched AWT GraphicsConfiguration to solve AWT-TreeLock (deadlock) - [Virtual] Viewport of MonitorDevice and Screen: - Properly calculate and expose [virtual] viewport in window and pixel units - OSX Monitor viewports in pixel units are 'reconstructed' - Window/Viewport to Monitor selection shall be perfomed via window units (unique) - OSX NEWT Window create/init (native): Use given size and coordinates even in fullscreen mode Don't override by quering NSScreen coordinates, trust given values. - Fix test cases, i.e. usage of pixel- and window-units
Diffstat (limited to 'src/test')
-rw-r--r--src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionNewtDemo.java20
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextNewtDemo.java20
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java19
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java113
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java95
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java125
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java107
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java144
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/awt/ManualHiDPIBufferedImage01AWT.java71
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java122
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java38
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java10
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNewtAWTWrapper.java35
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/TestGLWindows02NEWTAnimated.java5
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/ManualScreenMode03aNEWT.java31
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java45
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00cNEWT.java81
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01aNEWT.java100
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01bNEWT.java24
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01cNEWT.java47
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01dNEWT.java44
-rw-r--r--src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java8
28 files changed, 812 insertions, 508 deletions
diff --git a/src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java b/src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java
index 5cbcb7380..54b994d1f 100644
--- a/src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java
+++ b/src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java
@@ -172,7 +172,7 @@ public class MovieSimpleActivity1 extends NewtBaseActivity {
public boolean run(GLAutoDrawable drawable) {
final GLMediaPlayer mPlayerSub;
final MovieSimple demoHUD;
- final Rectangle windowBounds = scrn.getViewportInWindowUnits(glWindowHUD);
+ final Rectangle windowBounds = (Rectangle) scrn.getViewportInWindowUnits().cloneMutable();
if(null != mPlayerShared) {
if(0 < mPlayerShared.getWidth() && mPlayerShared.getWidth()<scrn.getWidth()/2 &&
0 < mPlayerShared.getHeight() && mPlayerShared.getHeight()<scrn.getHeight()/2) {
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionNewtDemo.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionNewtDemo.java
index 5c217a7dc..14ff53f10 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionNewtDemo.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionNewtDemo.java
@@ -59,6 +59,8 @@ public class GPURegionNewtDemo {
static boolean GraphUseWeight = true;
public static void main(String[] args) {
+ int width = 800, height = 400;
+ int x = 10, y = 10;
if( 0 != args.length ) {
SceneMSAASamples = 0;
GraphMSAASamples = 0;
@@ -79,9 +81,23 @@ public class GPURegionNewtDemo {
GraphVBAASamples = MiscUtils.atoi(args[i], GraphVBAASamples);
} else if(args[i].equals("-gweight")) {
GraphUseWeight = true;
+ } else if(args[i].equals("-width")) {
+ i++;
+ width = MiscUtils.atoi(args[i], width);
+ } else if(args[i].equals("-height")) {
+ i++;
+ height = MiscUtils.atoi(args[i], height);
+ } else if(args[i].equals("-x")) {
+ i++;
+ x = MiscUtils.atoi(args[i], x);
+ } else if(args[i].equals("-y")) {
+ i++;
+ y = MiscUtils.atoi(args[i], y);
}
}
}
+ System.err.println("Desired win size "+width+"x"+height);
+ System.err.println("Desired win pos "+x+"/"+y);
System.err.println("Scene MSAA Samples "+SceneMSAASamples);
System.err.println("Graph MSAA Samples"+GraphMSAASamples);
System.err.println("Graph VBAA Samples "+GraphVBAASamples);
@@ -107,8 +123,8 @@ public class GPURegionNewtDemo {
}
final GLWindow window = GLWindow.create(caps);
- window.setPosition(10, 10);
- window.setSurfaceSize(800, 400);
+ window.setPosition(x, y);
+ window.setSize(width, height);
window.setTitle("GPU Curve Region Newt Demo - graph[vbaa"+GraphVBAASamples+" msaa"+GraphMSAASamples+"], msaa "+SceneMSAASamples);
RenderState rs = RenderState.createRenderState(SVertex.factory());
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextNewtDemo.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextNewtDemo.java
index 09cf706ce..6a91d005e 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextNewtDemo.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextNewtDemo.java
@@ -60,6 +60,8 @@ public class GPUTextNewtDemo {
static int GraphMSAASamples = 0;
public static void main(String[] args) {
+ int width = 800, height = 400;
+ int x = 10, y = 10;
if( 0 != args.length ) {
SceneMSAASamples = 0;
GraphMSAASamples = 0;
@@ -77,9 +79,23 @@ public class GPUTextNewtDemo {
i++;
GraphMSAASamples = 0;
GraphVBAASamples = MiscUtils.atoi(args[i], GraphVBAASamples);
+ } else if(args[i].equals("-width")) {
+ i++;
+ width = MiscUtils.atoi(args[i], width);
+ } else if(args[i].equals("-height")) {
+ i++;
+ height = MiscUtils.atoi(args[i], height);
+ } else if(args[i].equals("-x")) {
+ i++;
+ x = MiscUtils.atoi(args[i], x);
+ } else if(args[i].equals("-y")) {
+ i++;
+ y = MiscUtils.atoi(args[i], y);
}
}
}
+ System.err.println("Desired win size "+width+"x"+height);
+ System.err.println("Desired win pos "+x+"/"+y);
System.err.println("Scene MSAA Samples "+SceneMSAASamples);
System.err.println("Graph MSAA Samples "+GraphMSAASamples);
System.err.println("Graph VBAA Samples "+GraphVBAASamples);
@@ -105,8 +121,8 @@ public class GPUTextNewtDemo {
}
final GLWindow window = GLWindow.create(caps);
- window.setPosition(10, 10);
- window.setSurfaceSize(800, 400);
+ window.setPosition(x, y);
+ window.setSize(width, height);
window.setTitle("GPU Text Newt Demo - graph[vbaa"+GraphVBAASamples+" msaa"+GraphMSAASamples+"], msaa "+SceneMSAASamples);
RenderState rs = RenderState.createRenderState(SVertex.factory());
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
index c26cb467a..9e5ecb648 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
@@ -21,7 +21,8 @@ public class GPUUISceneNewtDemo {
static boolean GraphMSAAMode = false;
public static void main(String[] args) {
- int swidth = 800, sheight = 400;
+ int width = 800, height = 400;
+ int x = 10, y = 10;
if( 0 != args.length ) {
for(int i=0; i<args.length; i++) {
if(args[i].equals("-smsaa")) {
@@ -37,13 +38,21 @@ public class GPUUISceneNewtDemo {
GraphVBAAMode = true;
} else if(args[i].equals("-width")) {
i++;
- swidth = MiscUtils.atoi(args[i], swidth);
+ width = MiscUtils.atoi(args[i], width);
} else if(args[i].equals("-height")) {
i++;
- sheight = MiscUtils.atoi(args[i], sheight);
+ height = MiscUtils.atoi(args[i], height);
+ } else if(args[i].equals("-x")) {
+ i++;
+ x = MiscUtils.atoi(args[i], x);
+ } else if(args[i].equals("-y")) {
+ i++;
+ y = MiscUtils.atoi(args[i], y);
}
}
}
+ System.err.println("Desired win size "+width+"x"+height);
+ System.err.println("Desired win pos "+x+"/"+y);
System.err.println("Scene MSAA Samples "+SceneMSAASamples);
System.err.println("Graph MSAA Mode "+GraphMSAAMode);
System.err.println("Graph VBAA Mode "+GraphVBAAMode);
@@ -67,8 +76,8 @@ public class GPUUISceneNewtDemo {
}
final GLWindow window = GLWindow.create(caps);
- window.setPosition(10, 10);
- window.setSurfaceSize(swidth, sheight);
+ window.setPosition(x, y);
+ window.setSize(width, height);
window.setTitle("GraphUI Newt Demo: graph["+Region.getRenderModeString(rmode)+"], msaa "+SceneMSAASamples);
final RenderState rs = RenderState.createRenderState(SVertex.factory());
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
index 5fe863527..27a91befc 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
@@ -61,7 +61,7 @@ public class UINewtDemo01 {
final GLWindow window = GLWindow.create(caps);
window.setPosition(10, 10);
- window.setSurfaceSize(800, 400);
+ window.setSize(800, 400);
window.setTitle("GPU UI Newt Demo 01");
RenderState rs = RenderState.createRenderState(SVertex.factory());
UIGLListener01 uiGLListener = new UIGLListener01 (0, rs, DEBUG, TRACE);
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java
index 82fa6422d..8113f34ee 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.acore;
import java.io.IOException;
@@ -61,14 +61,14 @@ import com.jogamp.opengl.test.junit.util.UITestCase;
/**
* Tests using a NEWT {@link Window} for on- and offscreen cases.
* <p>
- * Each test creates a {@link GLDrawable} using the
+ * Each test creates a {@link GLDrawable} using the
* {@link GLDrawableFactory#createGLDrawable(javax.media.nativewindow.NativeSurface) factory model}.
* The {@link GLContext} is derived {@link GLDrawable#createContext(GLContext) from the drawable}.
* </p>
* <p>
* Finally a {@link GLAutoDrawableDelegate} is created with the just created {@link GLDrawable} and {@link GLContext}.
- * It is being used to run the {@link GLEventListener}.
- * </p>
+ * It is being used to run the {@link GLEventListener}.
+ * </p>
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
@@ -83,7 +83,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
}
return new GLCapabilities(GLProfile.get(profile));
}
-
+
void doTest(GLCapabilitiesImmutable reqGLCaps, GLEventListener demo) throws InterruptedException {
System.out.println("Requested GL Caps: "+reqGLCaps);
final GLDrawableFactory factory = GLDrawableFactory.getFactory(reqGLCaps.getGLProfile());
@@ -91,7 +91,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
System.out.println("Expected GL Caps: "+expGLCaps);
//
// Create native windowing resources .. X11/Win/OSX
- //
+ //
final Window window = NewtFactory.createWindow(reqGLCaps);
Assert.assertNotNull(window);
window.setSize(widthStep*szStep, heightStep*szStep);
@@ -99,7 +99,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForVisible(window, true));
Assert.assertTrue(AWTRobotUtil.waitForRealized(window, true));
System.out.println("Window: "+window.getClass().getName());
-
+
// Check caps of NativeWindow config w/o GL
final CapabilitiesImmutable chosenCaps = window.getGraphicsConfiguration().getChosenCapabilities();
System.out.println("Window Caps Pre_GL: "+chosenCaps);
@@ -109,13 +109,13 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
Assert.assertTrue(chosenCaps.getRedBits()>5);
//
- // Create native OpenGL resources .. XGL/WGL/CGL ..
+ // Create native OpenGL resources .. XGL/WGL/CGL ..
// equivalent to GLAutoDrawable methods: setVisible(true)
- //
+ //
final GLDrawable drawable = factory.createGLDrawable(window);
Assert.assertNotNull(drawable);
System.out.println("Drawable Pre-GL(0): "+drawable.getClass().getName()+", "+drawable.getNativeSurface().getClass().getName());
-
+
//
drawable.setRealized(true);
Assert.assertTrue(drawable.isRealized());
@@ -123,13 +123,13 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
System.out.println("Window Caps PostGL : "+window.getGraphicsConfiguration().getChosenCapabilities());
System.out.println("Drawable Post-GL(1): "+drawable.getClass().getName()+", "+drawable.getNativeSurface().getClass().getName());
- // Note: FBO Drawable realization happens at 1st context.makeCurrent(),
+ // Note: FBO Drawable realization happens at 1st context.makeCurrent(),
// and hence only then it's caps can _fully_ reflect expectations,
// i.e. depth, stencil and MSAA will be valid only after makeCurrent(),
// where on-/offscreen state after setRealized(true)
// See GLFBODrawable API doc in this regard!
-
-
+
+
final GLCapabilitiesImmutable chosenGLCaps01 = drawable.getChosenGLCapabilities();
System.out.println("Chosen GL Caps(1): "+chosenGLCaps01);
Assert.assertNotNull(chosenGLCaps01);
@@ -137,13 +137,13 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps01.isFBO());
Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps01.isPBuffer());
Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps01.isBitmap());
-
+
final GLContext context = drawable.createContext(null);
Assert.assertNotNull(context);
int res = context.makeCurrent();
Assert.assertTrue(GLContext.CONTEXT_CURRENT_NEW==res || GLContext.CONTEXT_CURRENT==res);
context.release();
-
+
// Check caps of GLDrawable after realization
final GLCapabilitiesImmutable chosenGLCaps02 = drawable.getChosenGLCapabilities();
System.out.println("Chosen GL Caps(2): "+chosenGLCaps02);
@@ -158,12 +158,12 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps02.isFBO());
Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps02.isPBuffer());
Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps02.isBitmap());
- /** Single/Double buffer cannot be checked since result may vary ..
+ /** Single/Double buffer cannot be checked since result may vary ..
if(chosenGLCaps.isOnscreen() || chosenGLCaps.isFBO()) {
// dbl buffer may be disabled w/ offscreen pbuffer and bitmap
Assert.assertEquals(expGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered());
} */
-
+
final GLAutoDrawableDelegate glad = new GLAutoDrawableDelegate(drawable, context, window, false, null) {
@Override
protected void destroyImplInLock() {
@@ -171,12 +171,12 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
window.destroy(); // destroys the actual window, incl. the device
}
};
-
+
window.setWindowDestroyNotifyAction( new Runnable() {
public void run() {
glad.windowDestroyNotifyOp();
} } );
-
+
window.addWindowListener(new WindowAdapter() {
@Override
public void windowRepaint(WindowUpdateEvent e) {
@@ -190,38 +190,45 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
});
glad.addGLEventListener(demo);
-
+
final SnapshotGLEventListener snapshotGLEventListener = new SnapshotGLEventListener();
glad.addGLEventListener(snapshotGLEventListener);
-
+
glad.display(); // initial resize/display
-
+
// 1 - szStep = 2
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ final int[] expSurfaceSize = glad.getNativeSurface().convertToPixelUnits(new int[] { widthStep*szStep, heightStep*szStep });
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 2, 3 (resize + display)
szStep = 1;
window.setSize(widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 4, 5 (resize + display)
szStep = 4;
window.setSize(widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
Thread.sleep(50);
-
+
glad.destroy();
- System.out.println("Fin Drawable: "+drawable);
+ System.out.println("Fin Drawable: "+drawable);
System.out.println("Fin Window: "+window);
}
@@ -236,7 +243,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
System.err.println(JoglVersion.getDefaultOpenGLInfo(f.getDefaultDevice(), null, true).toString());
}
}
-
+
@Test
public void testGL2OnScreenSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -244,14 +251,14 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
if(null == reqGLCaps) return;
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -269,7 +276,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -278,7 +285,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setFBO(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbufferDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -287,7 +294,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setPBuffer(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbufferSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -297,7 +304,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenBitmapSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -307,7 +314,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new Gears(1));
}
-
+
@Test
public void testES2OnScreenSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -315,14 +322,14 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
if(null == reqGLCaps) return;
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -340,7 +347,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenFBODblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -349,7 +356,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setFBO(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenPbufferDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -358,7 +365,7 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setPBuffer(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenPbufferSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -368,19 +375,19 @@ public class TestGLAutoDrawableDelegateOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
/** Not implemented !
@Test
public void testES2OffScreenBitmapDblBuf() throws InterruptedException {
if(!checkProfile(GLProfile.GLES2)) {
return;
}
- final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2));
+ final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2));
reqGLCaps.setOnscreen(false);
reqGLCaps.setBitmap(true);
doTest(reqGLCaps, new GearsES2(1));
} */
-
+
public static void main(String args[]) throws IOException {
org.junit.runner.JUnitCore.main(TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.class.getName());
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java
index 888572444..2d231fb6d 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.acore;
import java.awt.Dimension;
@@ -74,7 +74,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
}
return new GLCapabilities(GLProfile.get(profile));
}
-
+
static void setGLCanvasSize(final Frame frame, final GLCanvas glc, final int width, final int height) {
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
@@ -89,13 +89,13 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
}
-
+
static interface MyGLEventListener extends GLEventListener {
void setMakeSnapshot();
}
-
+
void doTest(GLCapabilitiesImmutable reqGLCaps, GLEventListener demo) throws InterruptedException {
if(reqGLCaps.isOnscreen() && JAWTUtil.isOffscreenLayerRequired()) {
System.err.println("onscreen layer n/a");
@@ -120,8 +120,8 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
glad.setSize(glc_sz);
final Frame frame = new Frame(getSimpleTestName("."));
Assert.assertNotNull(frame);
- frame.add(glad);
-
+ frame.add(glad);
+
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
@@ -132,11 +132,11 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
}
-
+
Assert.assertTrue(AWTRobotUtil.waitForVisible(glad, true));
Assert.assertTrue(AWTRobotUtil.waitForRealized(glad, true));
System.out.println("Window: "+glad.getClass().getName());
-
+
// Check caps of NativeWindow config w/o GL
final CapabilitiesImmutable chosenCaps = glad.getChosenGLCapabilities();
System.out.println("Window Caps Pre_GL: "+chosenCaps);
@@ -146,20 +146,20 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
Assert.assertTrue(chosenCaps.getRedBits()>5);
glad.display(); // force native context creation
-
+
//
- // Create native OpenGL resources .. XGL/WGL/CGL ..
+ // Create native OpenGL resources .. XGL/WGL/CGL ..
// equivalent to GLAutoDrawable methods: setVisible(true)
- //
+ //
{
final GLDrawable actualDrawable = glad.getDelegatedDrawable();
Assert.assertNotNull(actualDrawable);
System.out.println("Drawable Pre-GL(0): "+actualDrawable.getClass().getName()+", "+actualDrawable.getNativeSurface().getClass().getName());
}
-
+
System.out.println("Window Caps PostGL : "+glad.getChosenGLCapabilities());
System.out.println("Drawable Post-GL(1): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
// Check caps of GLDrawable after realization
final GLCapabilitiesImmutable chosenGLCaps = glad.getChosenGLCapabilities();
System.out.println("Chosen GL Caps(1): "+chosenGLCaps);
@@ -172,7 +172,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps.isFBO());
Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps.isPBuffer());
Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps.isBitmap());
- /** Single/Double buffer cannot be checked since result may vary ..
+ /** Single/Double buffer cannot be checked since result may vary ..
if(chosenGLCaps.isOnscreen() || chosenGLCaps.isFBO()) {
// dbl buffer may be disabled w/ offscreen pbuffer and bitmap
Assert.assertEquals(expGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered());
@@ -184,43 +184,50 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
Assert.assertNotNull(context);
Assert.assertTrue(context.isCreated());
}
-
+
System.out.println("Chosen GL Caps(2): "+glad.getChosenGLCapabilities());
System.out.println("Drawable Post-GL(2): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
glad.addGLEventListener(demo);
-
+
final SnapshotGLEventListener snapshotGLEventListener = new SnapshotGLEventListener();
glad.addGLEventListener(snapshotGLEventListener);
-
+
glad.display(); // initial resize/display
-
+
// 1 - szStep = 2
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ final int[] expSurfaceSize = glad.getNativeSurface().convertToPixelUnits(new int[] { widthStep*szStep, heightStep*szStep });
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 2, 3 (resize + display)
szStep = 1;
setGLCanvasSize(frame, glad, widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
glad.display();
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 4, 5 (resize + display)
szStep = 4;
setGLCanvasSize(frame, glad, widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
glad.display();
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
Thread.sleep(50);
-
+
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
@@ -231,7 +238,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
System.out.println("Fin: "+glad);
}
@@ -246,14 +253,14 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
System.err.println(JoglVersion.getDefaultOpenGLInfo(f.getDefaultDevice(), null, true).toString());
}
}
-
+
@Test
public void testGL2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
if(null == reqGLCaps) return;
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -261,7 +268,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -270,7 +277,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -280,7 +287,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -298,7 +305,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -309,7 +316,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -321,7 +328,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbuffer() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -330,7 +337,7 @@ public class TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT extends UITestCase {
reqGLCaps.setPBuffer(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
public static void main(String args[]) throws IOException {
for(int i=0; i<args.length; i++) {
if(args[i].equals("-wait")) {
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java
index 4cdbb6fb0..8acec337b 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.acore;
import java.io.IOException;
@@ -57,8 +57,8 @@ import com.jogamp.opengl.test.junit.util.UITestCase;
/**
* Tests using a NEWT {@link GLWindow} {@link GLAutoDrawable auto drawable} for on- and offscreen cases.
* <p>
- * The NEWT {@link GLAutoDrawable} is being used to run the {@link GLEventListener}.
- * </p>
+ * The NEWT {@link GLAutoDrawable} is being used to run the {@link GLEventListener}.
+ * </p>
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
@@ -69,7 +69,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
static interface MyGLEventListener extends GLEventListener {
void setMakeSnapshot();
}
-
+
static GLCapabilities getCaps(String profile) {
if( !GLProfile.isAvailable(profile) ) {
System.err.println("Profile "+profile+" n/a");
@@ -77,7 +77,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
}
return new GLCapabilities(GLProfile.get(profile));
}
-
+
void doTest(GLCapabilitiesImmutable reqGLCaps, GLEventListener demo) throws InterruptedException {
System.out.println("Requested GL Caps: "+reqGLCaps);
final GLDrawableFactory factory = GLDrawableFactory.getFactory(reqGLCaps.getGLProfile());
@@ -85,7 +85,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
System.out.println("Expected GL Caps: "+expGLCaps);
//
// Create native windowing resources .. X11/Win/OSX
- //
+ //
final GLWindow glad = GLWindow.create(reqGLCaps);
Assert.assertNotNull(glad);
glad.setSize(widthStep*szStep, heightStep*szStep);
@@ -93,7 +93,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForVisible(glad, true));
Assert.assertTrue(AWTRobotUtil.waitForRealized(glad, true));
System.out.println("Window: "+glad.getClass().getName());
-
+
// Check caps of NativeWindow config w/o GL
final CapabilitiesImmutable chosenCaps = glad.getGraphicsConfiguration().getChosenCapabilities();
System.out.println("Window Caps Pre_GL: "+chosenCaps);
@@ -103,18 +103,18 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
Assert.assertTrue(chosenCaps.getRedBits()>5);
//
- // Create native OpenGL resources .. XGL/WGL/CGL ..
+ // Create native OpenGL resources .. XGL/WGL/CGL ..
// equivalent to GLAutoDrawable methods: setVisible(true)
- //
+ //
{
final GLDrawable actualDrawable = glad.getDelegatedDrawable();
Assert.assertNotNull(actualDrawable);
System.out.println("Drawable Pre-GL(0): "+actualDrawable.getClass().getName()+", "+actualDrawable.getNativeSurface().getClass().getName());
}
-
+
System.out.println("Window Caps PostGL : "+glad.getGraphicsConfiguration().getChosenCapabilities());
System.out.println("Drawable Post-GL(1): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
// Check caps of GLDrawable after realization
final GLCapabilitiesImmutable chosenGLCaps = glad.getChosenGLCapabilities();
System.out.println("Chosen GL Caps(1): "+chosenGLCaps);
@@ -127,7 +127,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps.isFBO());
Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps.isPBuffer());
Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps.isBitmap());
- /** Single/Double buffer cannot be checked since result may vary ..
+ /** Single/Double buffer cannot be checked since result may vary ..
if(chosenGLCaps.isOnscreen() || chosenGLCaps.isFBO()) {
// dbl buffer may be disabled w/ offscreen pbuffer and bitmap
Assert.assertEquals(expGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered());
@@ -140,41 +140,48 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
Assert.assertNotNull(context);
Assert.assertTrue(context.isCreated());
}
-
+
System.out.println("Chosen GL Caps(2): "+glad.getChosenGLCapabilities());
System.out.println("Drawable Post-GL(2): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
glad.addGLEventListener(demo);
-
+
final SnapshotGLEventListener snapshotGLEventListener = new SnapshotGLEventListener();
glad.addGLEventListener(snapshotGLEventListener);
-
+
glad.display(); // initial resize/display
-
+
// 1 - szStep = 2
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ final int[] expSurfaceSize = glad.getNativeSurface().convertToPixelUnits(new int[] { widthStep*szStep, heightStep*szStep });
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 2, 3 (resize + display)
szStep = 1;
glad.setSize(widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 4, 5 (resize + display)
szStep = 4;
glad.setSize(widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
Thread.sleep(50);
-
+
glad.destroy();
System.out.println("Fin: "+glad);
}
@@ -190,7 +197,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
System.err.println(JoglVersion.getDefaultOpenGLInfo(f.getDefaultDevice(), null, true).toString());
}
}
-
+
@Test
public void testGL2OnScreenSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -198,14 +205,14 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
if(null == reqGLCaps) return;
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -213,7 +220,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -222,7 +229,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -232,7 +239,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -250,7 +257,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -259,7 +266,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setFBO(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -269,7 +276,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -280,7 +287,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -292,7 +299,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbufferDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -301,7 +308,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setPBuffer(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbufferSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -311,7 +318,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenBitmapSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -321,7 +328,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new Gears(1));
}
-
+
@Test
public void testES2OnScreenSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -329,14 +336,14 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
if(null == reqGLCaps) return;
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OnScreenDblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -344,7 +351,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OnScreenDblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -353,7 +360,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OnScreenDblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -363,7 +370,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -381,7 +388,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenFBODblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -390,7 +397,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setFBO(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenFBODblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -400,7 +407,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setStencilBits(1);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenFBODblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -411,7 +418,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenFBODblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -423,7 +430,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setNumSamples(4);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenPbufferDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -432,7 +439,7 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setPBuffer(true);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testES2OffScreenPbufferSglBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GLES2);
@@ -442,19 +449,19 @@ public class TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT extends UITestCase {
reqGLCaps.setDoubleBuffered(false);
doTest(reqGLCaps, new GearsES2(1));
}
-
+
/** Not implemented !
@Test
public void testES2OffScreenBitmapDblBuf() throws InterruptedException {
if(!checkProfile(GLProfile.GLES2)) {
return;
}
- final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2));
+ final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2));
reqGLCaps.setOnscreen(false);
reqGLCaps.setBitmap(true);
doTest(reqGLCaps, new GearsES2(1));
} */
-
+
public static void main(String args[]) throws IOException {
org.junit.runner.JUnitCore.main(TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.class.getName());
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java
index 22a515f42..bfdad4427 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.acore;
import java.awt.Component;
@@ -63,8 +63,8 @@ import com.jogamp.opengl.test.junit.util.UITestCase;
/**
* Tests using a NEWT {@link GLWindow} {@link GLAutoDrawable auto drawable} for on- and offscreen cases.
* <p>
- * The NEWT {@link GLAutoDrawable} is being used to run the {@link GLEventListener}.
- * </p>
+ * The NEWT {@link GLAutoDrawable} is being used to run the {@link GLEventListener}.
+ * </p>
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase {
@@ -79,7 +79,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
}
return new GLCapabilities(GLProfile.get(profile));
}
-
+
static void setComponentSize(final Frame frame, final Component comp, final int width, final int height) {
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
@@ -94,13 +94,13 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
}
-
+
static interface MyGLEventListener extends GLEventListener {
void setMakeSnapshot();
}
-
+
void doTest(boolean offscreenLayer, GLCapabilitiesImmutable reqGLCaps, GLEventListener demo) throws InterruptedException {
if(!offscreenLayer && JAWTUtil.isOffscreenLayerRequired()) {
System.err.println("onscreen layer n/a");
@@ -112,16 +112,16 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
}
System.out.println("Requested GL Caps: "+reqGLCaps);
final GLDrawableFactory factory = GLDrawableFactory.getFactory(reqGLCaps.getGLProfile());
- final AbstractGraphicsDevice device = factory.getDefaultDevice();
+ final AbstractGraphicsDevice device = factory.getDefaultDevice();
final GLCapabilitiesImmutable expGLCaps = offscreenLayer ?
GLGraphicsConfigurationUtil.fixOffscreenGLCapabilities(reqGLCaps, factory, device) :
GLGraphicsConfigurationUtil.fixGLCapabilities(reqGLCaps, factory, device);
System.out.println("Expected GL Caps: "+expGLCaps);
-
+
final GLWindow glad = GLWindow.create(reqGLCaps);
Assert.assertNotNull(glad);
-
+
final NewtCanvasAWT nca = new NewtCanvasAWT(glad);
Assert.assertNotNull(nca);
Dimension size0 = new Dimension(widthStep*szStep, heightStep*szStep);
@@ -129,11 +129,11 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
nca.setPreferredSize(size0);
nca.setMinimumSize(size0);
nca.setSize(size0);
-
+
final Frame frame = new Frame(getSimpleTestName("."));
Assert.assertNotNull(frame);
- frame.add(nca);
-
+ frame.add(nca);
+
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
@@ -144,11 +144,11 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
throwable.printStackTrace();
Assume.assumeNoException( throwable );
}
-
+
Assert.assertTrue(AWTRobotUtil.waitForVisible(glad, true));
Assert.assertTrue(AWTRobotUtil.waitForRealized(glad, true));
System.out.println("Window: "+glad.getClass().getName());
-
+
// Check caps of NativeWindow config w/o GL
final CapabilitiesImmutable chosenCaps = glad.getChosenGLCapabilities();
System.out.println("Window Caps Pre_GL: "+chosenCaps);
@@ -158,20 +158,20 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
Assert.assertTrue(chosenCaps.getRedBits()>5);
glad.display(); // force native context creation
-
+
//
- // Create native OpenGL resources .. XGL/WGL/CGL ..
+ // Create native OpenGL resources .. XGL/WGL/CGL ..
// equivalent to GLAutoDrawable methods: setVisible(true)
- //
+ //
{
final GLDrawable actualDrawable = glad.getDelegatedDrawable();
Assert.assertNotNull(actualDrawable);
System.out.println("Drawable Pre-GL(0): "+actualDrawable.getClass().getName()+", "+actualDrawable.getNativeSurface().getClass().getName());
}
-
+
System.out.println("Window Caps PostGL : "+glad.getChosenGLCapabilities());
System.out.println("Drawable Post-GL(1): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
// Check caps of GLDrawable after realization
final GLCapabilitiesImmutable chosenGLCaps = glad.getChosenGLCapabilities();
System.out.println("Chosen GL Caps(1): "+chosenGLCaps);
@@ -184,7 +184,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps.isFBO());
Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps.isPBuffer());
Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps.isBitmap());
- /** Single/Double buffer cannot be checked since result may vary ..
+ /** Single/Double buffer cannot be checked since result may vary ..
if(chosenGLCaps.isOnscreen() || chosenGLCaps.isFBO()) {
// dbl buffer may be disabled w/ offscreen pbuffer and bitmap
Assert.assertEquals(expGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered());
@@ -196,43 +196,50 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
Assert.assertNotNull(context);
Assert.assertTrue(context.isCreated());
}
-
+
System.out.println("Chosen GL Caps(2): "+glad.getChosenGLCapabilities());
System.out.println("Drawable Post-GL(2): "+glad.getClass().getName()+", "+glad.getNativeSurface().getClass().getName());
-
+
glad.addGLEventListener(demo);
-
+
final SnapshotGLEventListener snapshotGLEventListener = new SnapshotGLEventListener();
glad.addGLEventListener(snapshotGLEventListener);
-
+
glad.display(); // initial resize/display
-
+
// 1 - szStep = 2
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ final int[] expSurfaceSize = glad.getNativeSurface().convertToPixelUnits(new int[] { widthStep*szStep, heightStep*szStep });
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 2, 3 (resize + display)
szStep = 1;
setComponentSize(frame, nca, widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
glad.display();
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
// 4, 5 (resize + display)
szStep = 4;
setComponentSize(frame, nca, widthStep*szStep, heightStep*szStep);
- Assert.assertTrue("Size not reached: Expected "+(widthStep*szStep)+"x"+(heightStep*szStep)+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glad, widthStep*szStep, heightStep*szStep));
+ expSurfaceSize[0] = widthStep*szStep;
+ expSurfaceSize[1] = heightStep*szStep;
+ glad.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glad.getSurfaceWidth()+"x"+glad.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glad, expSurfaceSize[0], expSurfaceSize[1]));
glad.display();
snapshotGLEventListener.setMakeSnapshot();
glad.display();
-
+
Thread.sleep(50);
-
+
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
@@ -243,7 +250,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
glad.destroy();
System.out.println("Fin: "+nca);
System.out.println("Fin: "+glad);
@@ -260,14 +267,14 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
System.err.println(JoglVersion.getDefaultOpenGLInfo(f.getDefaultDevice(), null, true).toString());
}
}
-
+
@Test
public void testGL2OnScreenDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
if(null == reqGLCaps) return;
doTest(false, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencil() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -275,7 +282,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setStencilBits(1);
doTest(false, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -284,7 +291,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setNumSamples(4);
doTest(false, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OnScreenDblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -294,7 +301,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setNumSamples(4);
doTest(false, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenLayerAutoDblBuf() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -311,7 +318,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setStencilBits(1);
doTest(true, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -322,7 +329,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setNumSamples(4);
doTest(true, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenFBODblBufStencilMSAA() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -334,7 +341,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setNumSamples(4);
doTest(true, reqGLCaps, new GearsES2(1));
}
-
+
@Test
public void testGL2OffScreenPbuffer() throws InterruptedException {
final GLCapabilities reqGLCaps = getCaps(GLProfile.GL2);
@@ -343,7 +350,7 @@ public class TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT extends UITestCase
reqGLCaps.setOnscreen(true); // get native NEWT Window, not OffscreenWindow
doTest(true, reqGLCaps, new GearsES2(1));
}
-
+
public static void main(String args[]) throws IOException {
org.junit.runner.JUnitCore.main(TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.class.getName());
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java
index 93713c783..173df57f6 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java
@@ -54,12 +54,12 @@ public class TestGPUMemSec01NEWT extends UITestCase {
return "0x"+Integer.toHexString(i);
}
static String exceptionMsg(String pre, int format, int type, int components, int width, int height, int rl1, int rl4, int rl8) {
- return pre +
+ return pre +
": fmt "+hexString(format)+", type "+hexString(type)+", comps "+components+
", "+width+"x"+height+
- ", rowlenA1 "+rl1+", rowlenA4 "+rl4+", rowlenA8 "+rl8;
+ ", rowlenA1 "+rl1+", rowlenA4 "+rl4+", rowlenA8 "+rl8;
}
-
+
static NEWTGLContext.WindowContext createCurrentGLOffscreenWindow(GLProfile glp, int width, int height) throws GLException, InterruptedException {
final NEWTGLContext.WindowContext winctx = NEWTGLContext.createOffscreenWindow(
new GLCapabilities(glp), width, height, true);
@@ -68,34 +68,34 @@ public class TestGPUMemSec01NEWT extends UITestCase {
// System.err.println("Pre GL Error: 0x"+Integer.toHexString(gl.glGetError()));
// System.err.println(winctx.drawable);
Assert.assertEquals(GL.GL_NO_ERROR, gl.glGetError());
-
+
// misc GL setup
gl.glClearColor(1, 1, 1, 1);
gl.glEnable(GL.GL_DEPTH_TEST);
Assert.assertEquals(GL.GL_NO_ERROR, gl.glGetError());
- gl.glViewport(0, 0, width, height);
+ gl.glViewport(0, 0, width, height);
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
Assert.assertEquals(GL.GL_NO_ERROR, gl.glGetError());
-
+
return winctx;
}
-
+
static int readPixelsCheck(GL gl, int format, int type, int components, int width, int height) throws InterruptedException {
int expectedExceptions = 0;
-
- final int rowlenA1 = width * components;
-
- final int rowlenA4 = ( ( width * components + 3 ) / 4 ) * 4 ;
+
+ final int rowlenA1 = width * components;
+
+ final int rowlenA4 = ( ( width * components + 3 ) / 4 ) * 4 ;
Assert.assertTrue(rowlenA4 % 4 == 0);
final int rowlenA8 = ( ( width * components + 7 ) / 8 ) * 8 ;
Assert.assertTrue(rowlenA8 % 8 == 0);
-
+
GLPixelStorageModes psm = new GLPixelStorageModes();
psm.setPackAlignment(gl, 1);
-
+
Exception ee = null;
-
+
// ok size !
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA1);
@@ -105,11 +105,11 @@ public class TestGPUMemSec01NEWT extends UITestCase {
ee = e;
}
Assert.assertNull(
- exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 1)",
+ exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 1)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
ee = null;
-
-
+
+
// too small -10 !
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA1-10);
@@ -118,16 +118,16 @@ public class TestGPUMemSec01NEWT extends UITestCase {
} catch(IndexOutOfBoundsException e) {
ee = e;
System.err.println(
- exceptionMsg("OK Expected IndexOutOfBoundsException (size-10 bytes)",
+ exceptionMsg("OK Expected IndexOutOfBoundsException (size-10 bytes)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8)+
": "+ee.getMessage());
- expectedExceptions++;
+ expectedExceptions++;
}
Assert.assertNotNull(
- exceptionMsg("Expected IndexOutOfBoundsException (size-10 bytes)",
+ exceptionMsg("Expected IndexOutOfBoundsException (size-10 bytes)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
ee = null;
-
+
// too small size/4 !
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA1/4);
@@ -136,21 +136,21 @@ public class TestGPUMemSec01NEWT extends UITestCase {
} catch(IndexOutOfBoundsException e) {
ee = e;
System.err.println(
- exceptionMsg("OK Expected IndexOutOfBoundsException (size/4 bytes)",
+ exceptionMsg("OK Expected IndexOutOfBoundsException (size/4 bytes)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8)+
": "+ee.getMessage());
- expectedExceptions++;
+ expectedExceptions++;
}
Assert.assertNotNull(
- exceptionMsg("Expected IndexOutOfBoundsException (size/4 bytes)",
+ exceptionMsg("Expected IndexOutOfBoundsException (size/4 bytes)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
ee = null;
//
// Alignment test
- //
+ //
psm.setPackAlignment(gl, 4);
-
+
// ok size !
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA4);
@@ -160,10 +160,10 @@ public class TestGPUMemSec01NEWT extends UITestCase {
ee = e;
}
Assert.assertNull(
- exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 4)",
+ exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 4)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
ee = null;
-
+
// too small if rowlenA1%4 > 0
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA1);
@@ -173,7 +173,7 @@ public class TestGPUMemSec01NEWT extends UITestCase {
ee = e;
if(rowlenA1%4>0) {
System.err.println(
- exceptionMsg("OK Expected IndexOutOfBoundsException (alignment 4)",
+ exceptionMsg("OK Expected IndexOutOfBoundsException (alignment 4)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8)+
": "+ee.getMessage());
expectedExceptions++;
@@ -181,17 +181,17 @@ public class TestGPUMemSec01NEWT extends UITestCase {
}
if(rowlenA1%4>0) {
Assert.assertNotNull(
- exceptionMsg("Expected IndexOutOfBoundsException (alignment 4)",
+ exceptionMsg("Expected IndexOutOfBoundsException (alignment 4)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
} else {
Assert.assertNull(
- exceptionMsg("Unexpected IndexOutOfBoundsException (alignment 4)",
- format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
+ exceptionMsg("Unexpected IndexOutOfBoundsException (alignment 4)",
+ format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
}
ee = null;
-
+
psm.setPackAlignment(gl, 8);
-
+
// ok size !
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA8);
@@ -201,10 +201,10 @@ public class TestGPUMemSec01NEWT extends UITestCase {
ee = e;
}
Assert.assertNull(
- exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 8)",
+ exceptionMsg("Unexpected IndexOutOfBoundsException (size ok, alignment 8)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
ee = null;
-
+
// too small if rowlenA1%8 > 0
try {
ByteBuffer bb = Buffers.newDirectByteBuffer(height*rowlenA1);
@@ -214,7 +214,7 @@ public class TestGPUMemSec01NEWT extends UITestCase {
ee = e;
if(rowlenA1%8>0) {
System.err.println(
- exceptionMsg("OK Expected IndexOutOfBoundsException (alignment 8)",
+ exceptionMsg("OK Expected IndexOutOfBoundsException (alignment 8)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8)+
": "+ee.getMessage());
expectedExceptions++;
@@ -222,37 +222,37 @@ public class TestGPUMemSec01NEWT extends UITestCase {
}
if(rowlenA1%8>0) {
Assert.assertNotNull(
- exceptionMsg("Expected IndexOutOfBoundsException (alignment 8)",
+ exceptionMsg("Expected IndexOutOfBoundsException (alignment 8)",
format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
} else {
Assert.assertNull(
- exceptionMsg("Unexpected IndexOutOfBoundsException (alignment 8)",
- format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
+ exceptionMsg("Unexpected IndexOutOfBoundsException (alignment 8)",
+ format, type, components, width, height, rowlenA1, rowlenA4, rowlenA8), ee);
}
ee = null;
-
- psm.restore(gl);
-
- return expectedExceptions;
+
+ psm.restore(gl);
+
+ return expectedExceptions;
}
-
+
@Test
public void testReadPixelsGL_640x480xRGBAxUB() throws InterruptedException {
GLProfile glp = GLProfile.getDefault();
final int width = 640;
final int height= 480;
-
+
// preset ..
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, width, height);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL gl = winctx.context.getGL();
-
+
// 2 x too small - 0 x alignment
Assert.assertEquals(2, readPixelsCheck(gl, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, 4, width, height));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
@@ -263,21 +263,21 @@ public class TestGPUMemSec01NEWT extends UITestCase {
final int wheight= 480;
final int rwidth = 99;
final int rheight= 100;
-
+
// preset ..
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, wwidth, wheight);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL gl = winctx.context.getGL();
-
+
// 2 x too small - 1 x alignment
Assert.assertEquals(3, readPixelsCheck(gl, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, 4, rwidth, rheight));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
-
+
@Test
public void testReadPixelsGL2GL3_640x480xRGBxUB() throws InterruptedException {
GLProfile glp = GLProfile.getGL2ES2();
@@ -287,21 +287,21 @@ public class TestGPUMemSec01NEWT extends UITestCase {
}
final int width = 640;
final int height= 480;
-
+
// preset ..
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, width, height);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL gl = winctx.context.getGL();
-
+
// 2 x too small - 0 x alignment
Assert.assertEquals(2, readPixelsCheck(gl, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, 3, width, height));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
-
+
@Test
public void testReadPixelsGL2GL3_99x100xRGBxUB() throws InterruptedException {
GLProfile glp = GLProfile.getGL2ES2();
@@ -313,21 +313,21 @@ public class TestGPUMemSec01NEWT extends UITestCase {
final int wheight= 480;
final int rwidth = 99;
final int rheight= 100;
-
+
// preset ..
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, wwidth, wheight);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL gl = winctx.context.getGL();
-
+
// 2 x too small - 2 x alignment
Assert.assertEquals(4, readPixelsCheck(gl, GL.GL_RGB, GL.GL_UNSIGNED_BYTE, 3, rwidth, rheight));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
-
+
@Test
public void testReadPixelsGL2GL3_640x480xREDxUB() throws InterruptedException {
GLProfile glp = GLProfile.getGL2ES2();
@@ -342,13 +342,13 @@ public class TestGPUMemSec01NEWT extends UITestCase {
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, width, height);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL2GL3 gl = winctx.context.getGL().getGL2GL3();
-
+
// 2 x too small - 0 x alignment
Assert.assertEquals(2, readPixelsCheck(gl, GL2ES2.GL_RED, GL.GL_UNSIGNED_BYTE, 1, width, height));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
@@ -368,19 +368,19 @@ public class TestGPUMemSec01NEWT extends UITestCase {
final NEWTGLContext.WindowContext winctx = createCurrentGLOffscreenWindow(glp, wwidth, wheight);
final GLDrawable drawable = winctx.context.getGLDrawable();
final GL2GL3 gl = winctx.context.getGL().getGL2GL3();
-
+
// 2 x too small - 2 x alignment
Assert.assertEquals(4, readPixelsCheck(gl, GL2ES2.GL_RED, GL.GL_UNSIGNED_BYTE, 1, rwidth, rheight));
-
+
drawable.swapBuffers();
Thread.sleep(50);
-
+
NEWTGLContext.destroyWindow(winctx);
}
-
+
public static void main(String args[]) throws IOException {
String tstname = TestGPUMemSec01NEWT.class.getName();
org.junit.runner.JUnitCore.main(tstname);
- }
+ }
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/awt/ManualHiDPIBufferedImage01AWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/awt/ManualHiDPIBufferedImage01AWT.java
new file mode 100644
index 000000000..0b67cfe46
--- /dev/null
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/awt/ManualHiDPIBufferedImage01AWT.java
@@ -0,0 +1,71 @@
+package com.jogamp.opengl.test.junit.jogl.awt;
+
+import java.awt.BorderLayout;
+import java.awt.Canvas;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.image.BufferedImage;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
+
+/**
+ * Manual test for BufferedImage behavior w/ OSX HiDPI pixel scale usage.
+ */
+public class ManualHiDPIBufferedImage01AWT {
+
+ static final int width = 200;
+ static final int height = 100;
+
+ public static void main(String[] args) throws InterruptedException, InvocationTargetException {
+ final JFrame frame = new JFrame();
+
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ final Image image1 = getImage(getCheckBox("High-DPI (no)", false), width, height, 1);
+ final Image image2 = getImage(getCheckBox("High-DPI (yes)", true), width, height, 2);
+ System.err.println("Image1: "+image1);
+ System.err.println("Image2: "+image2);
+
+ @SuppressWarnings("serial")
+ final Canvas canvas = new Canvas() {
+ @Override
+ public void paint(Graphics g) {
+ super.paint(g);
+ g.drawImage(image1, 0, 0, width, height, this);
+ g.drawImage(image2, 0, height + 5, width, height, this);
+ }
+ };
+ frame.getContentPane().add(getCheckBox("High-DPI (ref)", false), BorderLayout.NORTH);
+ frame.getContentPane().add(canvas, BorderLayout.CENTER);
+
+ frame.setBounds((1440-400)/2, 100, 400, 400);
+ frame.validate();
+ frame.setVisible(true);
+ }
+ });
+ }
+
+ static JCheckBox getCheckBox(String text, boolean selected) {
+ JCheckBox checkBox = new JCheckBox(text);
+ checkBox.setSelected(selected);
+ checkBox.setSize(new Dimension(width, height));
+ return checkBox;
+ }
+
+ static Image getImage(JComponent component, int width, int height, int scale) {
+ final BufferedImage image = new BufferedImage(width*scale, height*scale, BufferedImage.TYPE_INT_ARGB);
+ final Graphics g = image.getGraphics();
+ ((Graphics2D) g).scale(scale, scale);
+ component.paint(g);
+ g.dispose();
+
+ return image;
+ }
+}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
index 116d5d245..42c1234da 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
@@ -561,7 +561,7 @@ public class MovieCube implements GLEventListener {
anim.stop();
}
});
- window.setSurfaceSize(width, height);
+ window.setSize(width, height);
window.setVisible(true);
System.err.println("Chosen: "+window.getChosenGLCapabilities());
anim.start();
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
index 1997739e3..7b6dd162a 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
@@ -1050,7 +1050,7 @@ public class MovieSimple implements GLEventListener {
mss[i].mPlayer.addEventListener(myGLMediaEventListener);
windows[i].setTitle("Player "+i);
- windows[i].setSurfaceSize(width, height);
+ windows[i].setSize(width, height);
windows[i].setVisible(true);
anim.add(windows[i]);
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java
index 96a120c62..d9839c057 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,17 +20,18 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.demos.es2.awt;
import javax.media.opengl.*;
import com.jogamp.opengl.util.Animator;
+
import javax.media.opengl.awt.GLCanvas;
import com.jogamp.common.os.Platform;
@@ -38,7 +39,6 @@ import com.jogamp.newt.event.awt.AWTKeyAdapter;
import com.jogamp.newt.event.awt.AWTWindowAdapter;
import com.jogamp.newt.event.TraceKeyAdapter;
import com.jogamp.newt.event.TraceWindowAdapter;
-
import com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2;
import com.jogamp.opengl.test.junit.util.AWTRobotUtil;
import com.jogamp.opengl.test.junit.util.MiscUtils;
@@ -53,6 +53,8 @@ import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.TextArea;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -70,12 +72,13 @@ import org.junit.runners.MethodSorters;
public class TestGearsES2AWT extends UITestCase {
public enum FrameLayout { None, TextOnBottom, BorderCenterSurrounded, DoubleBorderCenterSurrounded };
public enum ResizeBy { Component, Frame };
-
- static long duration = 500; // ms
- static int width, height;
+
+ static long duration = 500; // ms
+ static int width = 640, height = 480;
+ static int xpos = 10, ypos = 10;
static FrameLayout frameLayout = FrameLayout.None;
static ResizeBy resizeBy = ResizeBy.Component;
-
+
static boolean forceES2 = false;
static boolean forceGL3 = false;
static boolean mainRun = false;
@@ -94,8 +97,6 @@ public class TestGearsES2AWT extends UITestCase {
@BeforeClass
public static void initClass() {
- width = 640;
- height = 480;
try {
EventQueue.invokeAndWait(new Runnable() {
public void run() {
@@ -125,7 +126,7 @@ public class TestGearsES2AWT extends UITestCase {
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
}
static void setFrameSize(final Frame frame, final boolean frameLayout, final java.awt.Dimension new_sz) {
try {
@@ -139,9 +140,9 @@ public class TestGearsES2AWT extends UITestCase {
} catch( Throwable throwable ) {
throwable.printStackTrace();
Assume.assumeNoException( throwable );
- }
+ }
}
-
+
static void setSize(final ResizeBy resizeBy, final Frame frame, final boolean frameLayout, final Component comp, final java.awt.Dimension new_sz) {
switch( resizeBy ) {
case Component:
@@ -150,17 +151,24 @@ public class TestGearsES2AWT extends UITestCase {
case Frame:
setFrameSize(frame, frameLayout, new_sz);
break;
- }
+ }
+ }
+
+ private void setTitle(final Frame frame, final GLCanvas glc, final GLCapabilitiesImmutable caps) {
+ final String capsA = caps.isBackgroundOpaque() ? "opaque" : "transl";
+ final java.awt.Rectangle b = glc.getBounds();
+ frame.setTitle("GLCanvas["+capsA+"], swapI "+swapInterval+", win: ["+b.x+"/"+b.y+" "+b.width+"x"+b.height+"], pix: "+glc.getSurfaceWidth()+"x"+glc.getSurfaceHeight());
}
-
- protected void runTestGL(GLCapabilities caps, final ResizeBy resizeBy, FrameLayout frameLayout) throws InterruptedException, InvocationTargetException {
+
+ protected void runTestGL(final GLCapabilities caps, final ResizeBy resizeBy, FrameLayout frameLayout) throws InterruptedException, InvocationTargetException {
final Frame frame = new Frame("GearsES2 AWT Test");
Assert.assertNotNull(frame);
final GLCanvas glCanvas = new GLCanvas(caps);
Assert.assertNotNull(glCanvas);
setSize(resizeBy, frame, false, glCanvas, new Dimension(width, height));
-
+ frame.setLocation(xpos, ypos);
+
switch( frameLayout) {
case None:
frame.add(glCanvas);
@@ -174,7 +182,7 @@ public class TestGearsES2AWT extends UITestCase {
frame.setLayout(new BorderLayout());
frame.add(ta, BorderLayout.SOUTH);
frame.add(glCanvas, BorderLayout.CENTER);
- break;
+ break;
case BorderCenterSurrounded:
frame.setLayout(new BorderLayout());
frame.add(new Button("NORTH"), BorderLayout.NORTH);
@@ -191,7 +199,7 @@ public class TestGearsES2AWT extends UITestCase {
c.add(new Button("east"), BorderLayout.EAST);
c.add(new Button("west"), BorderLayout.WEST);
c.add(glCanvas, BorderLayout.CENTER);
-
+
frame.setLayout(new BorderLayout());
frame.add(new Button("NORTH"), BorderLayout.NORTH);
frame.add(new Button("SOUTH"), BorderLayout.SOUTH);
@@ -200,11 +208,29 @@ public class TestGearsES2AWT extends UITestCase {
frame.add(c, BorderLayout.CENTER);
break;
}
- frame.setTitle("Gears AWT Test (translucent "+!caps.isBackgroundOpaque()+"), swapInterval "+swapInterval);
+ setTitle(frame, glCanvas, caps);
+
+ frame.addComponentListener(new ComponentListener() {
+ @Override
+ public void componentResized(ComponentEvent e) {
+ setTitle(frame, glCanvas, caps);
+ }
+
+ @Override
+ public void componentMoved(ComponentEvent e) {
+ setTitle(frame, glCanvas, caps);
+ }
+
+ @Override
+ public void componentShown(ComponentEvent e) { }
+
+ @Override
+ public void componentHidden(ComponentEvent e) { }
+ });
final GearsES2 demo = new GearsES2(swapInterval);
glCanvas.addGLEventListener(demo);
-
+
final SnapshotGLEventListener snap = new SnapshotGLEventListener();
glCanvas.addGLEventListener(snap);
@@ -222,13 +248,13 @@ public class TestGearsES2AWT extends UITestCase {
if( ResizeBy.Frame == resizeBy ) {
frame.validate();
} else {
- frame.pack();
- }
+ frame.pack();
+ }
frame.setVisible(true);
- }});
+ }});
Assert.assertEquals(true, AWTRobotUtil.waitForVisible(frame, true));
- Assert.assertEquals(true, AWTRobotUtil.waitForRealized(glCanvas, true));
-
+ Assert.assertEquals(true, AWTRobotUtil.waitForRealized(glCanvas, true));
+
if( useAnimator ) {
animator.start();
Assert.assertTrue(animator.isStarted());
@@ -236,19 +262,19 @@ public class TestGearsES2AWT extends UITestCase {
Assert.assertEquals(exclusiveContext ? awtEDT : null, glCanvas.getExclusiveContextThread());
animator.setUpdateFPSFrames(60, System.err);
}
-
+
System.err.println("canvas pos/siz: "+glCanvas.getX()+"/"+glCanvas.getY()+" "+glCanvas.getSurfaceWidth()+"x"+glCanvas.getSurfaceHeight());
snap.setMakeSnapshot();
-
+
if( null != rwsize ) {
- Thread.sleep(500); // 500ms delay
+ Thread.sleep(500); // 500ms delay
setSize(resizeBy, frame, true, glCanvas, rwsize);
System.err.println("window resize pos/siz: "+glCanvas.getX()+"/"+glCanvas.getY()+" "+glCanvas.getSurfaceWidth()+"x"+glCanvas.getSurfaceHeight());
}
-
+
snap.setMakeSnapshot();
-
+
final long t0 = System.currentTimeMillis();
long t1 = t0;
while(!quitAdapter.shouldQuit() && t1 - t0 < duration) {
@@ -258,7 +284,7 @@ public class TestGearsES2AWT extends UITestCase {
Assert.assertNotNull(frame);
Assert.assertNotNull(glCanvas);
-
+
if( useAnimator ) {
Assert.assertNotNull(animator);
Assert.assertEquals(exclusiveContext ? awtEDT : null, glCanvas.getExclusiveContextThread());
@@ -317,7 +343,7 @@ public class TestGearsES2AWT extends UITestCase {
@Test
public void test02_GLES2() throws InterruptedException, InvocationTargetException {
if(mainRun) return;
-
+
if( !GLProfile.isAvailable(GLProfile.GLES2) ) {
System.err.println("GLES2 n/a");
return;
@@ -326,11 +352,11 @@ public class TestGearsES2AWT extends UITestCase {
final GLCapabilities caps = new GLCapabilities( glp );
runTestGL(caps, resizeBy, frameLayout);
}
-
+
@Test
public void test03_GL3() throws InterruptedException, InvocationTargetException {
if(mainRun) return;
-
+
if( !GLProfile.isAvailable(GLProfile.GL3) ) {
System.err.println("GL3 n/a");
return;
@@ -339,16 +365,28 @@ public class TestGearsES2AWT extends UITestCase {
final GLCapabilities caps = new GLCapabilities( glp );
runTestGL(caps, resizeBy, frameLayout);
}
-
+
public static void main(String args[]) {
boolean waitForKey = false;
int rw=-1, rh=-1;
-
+
mainRun = true;
for(int i=0; i<args.length; i++) {
if(args[i].equals("-time")) {
i++;
duration = MiscUtils.atol(args[i], duration);
+ } else if(args[i].equals("-width")) {
+ i++;
+ width = MiscUtils.atoi(args[i], width);
+ } else if(args[i].equals("-height")) {
+ i++;
+ height = MiscUtils.atoi(args[i], height);
+ } else if(args[i].equals("-x")) {
+ i++;
+ xpos = MiscUtils.atoi(args[i], xpos);
+ } else if(args[i].equals("-y")) {
+ i++;
+ ypos = MiscUtils.atoi(args[i], ypos);
} else if(args[i].equals("-rwidth")) {
i++;
rw = MiscUtils.atoi(args[i], rw);
@@ -396,7 +434,7 @@ public class TestGearsES2AWT extends UITestCase {
if( 0 < rw && 0 < rh ) {
rwsize = new Dimension(rw, rh);
}
-
+
System.err.println("resize "+rwsize);
System.err.println("frameLayout "+frameLayout);
System.err.println("resizeBy "+resizeBy);
@@ -406,10 +444,10 @@ public class TestGearsES2AWT extends UITestCase {
System.err.println("exclusiveContext "+exclusiveContext);
System.err.println("useMSAA "+useMSAA);
System.err.println("useAnimator "+useAnimator);
-
+
System.err.println("shallUseOffscreenFBOLayer "+shallUseOffscreenFBOLayer);
System.err.println("shallUseOffscreenPBufferLayer "+shallUseOffscreenPBufferLayer);
-
+
if(waitForKey) {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.err.println("Press enter to continue");
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java
index 55616c15f..29750973a 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java
@@ -31,9 +31,12 @@ package com.jogamp.opengl.test.junit.jogl.demos.es2.awt;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
import java.lang.reflect.InvocationTargetException;
import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLCapabilitiesImmutable;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLJPanel;
import javax.swing.JFrame;
@@ -71,6 +74,7 @@ public class TestGearsES2GLJPanelAWT extends UITestCase {
static boolean useAnimator = true;
static boolean manualTest = false;
static boolean skipGLOrientationVerticalFlip = false;
+ static int xpos = 10, ypos = 10;
@BeforeClass
public static void initClass() {
@@ -98,7 +102,13 @@ public class TestGearsES2GLJPanelAWT extends UITestCase {
}
}
- protected void runTestGL(GLCapabilities caps)
+ private void setTitle(final JFrame frame, final GLJPanel glc, final GLCapabilitiesImmutable caps) {
+ final String capsA = caps.isBackgroundOpaque() ? "opaque" : "transl";
+ final java.awt.Rectangle b = glc.getBounds();
+ frame.setTitle("GLJPanel["+capsA+"], swapI "+swapInterval+", win: ["+b.x+"/"+b.y+" "+b.width+"x"+b.height+"], pix: "+glc.getSurfaceWidth()+"x"+glc.getSurfaceHeight());
+ }
+
+ protected void runTestGL(final GLCapabilities caps)
throws AWTException, InterruptedException, InvocationTargetException
{
final JFrame frame = new JFrame("Swing GLJPanel");
@@ -121,6 +131,26 @@ public class TestGearsES2GLJPanelAWT extends UITestCase {
}
final SnapshotGLEventListener snap = new SnapshotGLEventListener();
glJPanel.addGLEventListener(snap);
+ setTitle(frame, glJPanel, caps);
+ frame.setLocation(xpos, ypos);
+
+ frame.addComponentListener(new ComponentListener() {
+ @Override
+ public void componentResized(ComponentEvent e) {
+ setTitle(frame, glJPanel, caps);
+ }
+
+ @Override
+ public void componentMoved(ComponentEvent e) {
+ setTitle(frame, glJPanel, caps);
+ }
+
+ @Override
+ public void componentShown(ComponentEvent e) { }
+
+ @Override
+ public void componentHidden(ComponentEvent e) { }
+ });
final FPSAnimator animator = useAnimator ? new FPSAnimator(glJPanel, 60) : null;
@@ -333,6 +363,12 @@ public class TestGearsES2GLJPanelAWT extends UITestCase {
} else if(args[i].equals("-height")) {
i++;
h = MiscUtils.atoi(args[i], h);
+ } else if(args[i].equals("-x")) {
+ i++;
+ xpos = MiscUtils.atoi(args[i], xpos);
+ } else if(args[i].equals("-y")) {
+ i++;
+ ypos = MiscUtils.atoi(args[i], ypos);
} else if(args[i].equals("-rwidth")) {
i++;
rw = MiscUtils.atoi(args[i], rw);
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java
index a96bb1973..bc6b5e26f 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java
@@ -117,13 +117,16 @@ public class TestGearsES2NEWT extends UITestCase {
public static void releaseClass() {
}
- protected void runTestGL(GLCapabilitiesImmutable caps, boolean undecorated) throws InterruptedException {
+ private void setTitle(final Window win, final GLCapabilitiesImmutable caps) {
+ final String capsA = caps.isBackgroundOpaque() ? "opaque" : "transl";
+ win.setTitle("GLWindow["+capsA+"], swapI "+swapInterval+", win: "+win.getBounds()+", pix: "+win.getSurfaceBounds());
+ }
+ protected void runTestGL(final GLCapabilitiesImmutable caps, boolean undecorated) throws InterruptedException {
System.err.println("requested: vsync "+swapInterval+", "+caps);
Display dpy = NewtFactory.createDisplay(null);
Screen screen = NewtFactory.createScreen(dpy, screenIdx);
final GLWindow glWindow = GLWindow.create(screen, caps);
Assert.assertNotNull(glWindow);
- glWindow.setTitle("Gears NEWT Test (translucent "+!caps.isBackgroundOpaque()+"), swapInterval "+swapInterval+", size "+wsize+", pos "+wpos);
glWindow.setSize(wsize.getWidth(), wsize.getHeight());
if(null != wpos) {
glWindow.setPosition(wpos.getX(), wpos.getY());
@@ -133,6 +136,7 @@ public class TestGearsES2NEWT extends UITestCase {
glWindow.setFullscreen(fullscreen);
glWindow.setPointerVisible(mouseVisible);
glWindow.confinePointer(mouseConfined);
+ setTitle(glWindow, caps);
final GearsES2 demo = new GearsES2(swapInterval);
demo.setPMVUseBackingArray(pmvUseBackingArray);
@@ -174,9 +178,11 @@ public class TestGearsES2NEWT extends UITestCase {
glWindow.addWindowListener(new WindowAdapter() {
public void windowResized(WindowEvent e) {
System.err.println("window resized: "+glWindow.getX()+"/"+glWindow.getY()+" "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight());
+ setTitle(glWindow, caps);
}
public void windowMoved(WindowEvent e) {
System.err.println("window moved: "+glWindow.getX()+"/"+glWindow.getY()+" "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight());
+ setTitle(glWindow, caps);
}
});
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNewtAWTWrapper.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNewtAWTWrapper.java
index 4b5cd0376..50e128b21 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNewtAWTWrapper.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNewtAWTWrapper.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.jogl.demos.gl2.newt;
import javax.media.nativewindow.*;
@@ -89,28 +89,35 @@ public class TestGearsNewtAWTWrapper extends UITestCase {
if( useAnimator ) {
animator.start();
}
-
+
int div = 3;
glWindow.setSize(width/div, height/div);
glWindow.setVisible(true);
if( doResizeTest ) {
glWindow.display();
- Assert.assertTrue("Size not reached: Expected "+(width/div)+"x"+(height/div)+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glWindow, width/div, height/div));
+ final int[] expSurfaceSize = glWindow.getNativeSurface().convertToPixelUnits(new int[] { width/div, height/div });
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glWindow, expSurfaceSize[0], expSurfaceSize[1]));
Thread.sleep(600);
-
+
div = 2;
glWindow.setSize(width/div, height/div);
glWindow.display();
- Assert.assertTrue("Size not reached: Expected "+(width/div)+"x"+(height/div)+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glWindow, width/div, height/div));
+ expSurfaceSize[0] = width/div;
+ expSurfaceSize[1] = height/div;
+ glWindow.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glWindow, expSurfaceSize[0], expSurfaceSize[1]));
Thread.sleep(600);
-
+
div = 1;
glWindow.setSize(width/div, height/div);
glWindow.display();
- Assert.assertTrue("Size not reached: Expected "+(width/div)+"x"+(height/div)+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
- AWTRobotUtil.waitForSize(glWindow, width/div, height/div));
+ expSurfaceSize[0] = width/div;
+ expSurfaceSize[1] = height/div;
+ glWindow.getNativeSurface().convertToPixelUnits(expSurfaceSize);
+ Assert.assertTrue("Surface Size not reached: Expected "+expSurfaceSize[0]+"x"+expSurfaceSize[1]+", Is "+glWindow.getSurfaceWidth()+"x"+glWindow.getSurfaceHeight(),
+ AWTRobotUtil.waitForSize(glWindow, expSurfaceSize[0], expSurfaceSize[1]));
Thread.sleep(600);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java b/src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java
index 22154ab58..3bc5159a6 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java
@@ -34,7 +34,7 @@ import com.jogamp.opengl.test.junit.util.*;
import java.lang.reflect.InvocationTargetException;
import javax.media.nativewindow.NativeWindowFactory;
-import javax.media.nativewindow.util.Rectangle;
+import javax.media.nativewindow.util.RectangleImmutable;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLProfile;
import javax.media.opengl.GLCapabilities;
@@ -271,7 +271,7 @@ public class TestSwingAWTRobotUsageBeforeJOGLInitBug411 extends UITestCase {
Assert.assertEquals(true, AWTRobotUtil.waitForRealized(win0, true));
Screen screen = win0.getScreen();
- final Rectangle screenBoundsInWinU = screen.getViewportInWindowUnits(win0);
+ final RectangleImmutable screenBoundsInWinU = screen.getViewportInWindowUnits();
win0.setPosition(screenBoundsInWinU.getX()-150, 0);
win0.addGLEventListener(new GearsES2());
Animator anim = new Animator(win0);
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java
index 8c679d209..0679563b8 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java
@@ -34,7 +34,7 @@ import org.junit.Test;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
-import javax.media.nativewindow.util.Rectangle;
+import javax.media.nativewindow.util.RectangleImmutable;
import javax.media.opengl.*;
import com.jogamp.newt.*;
@@ -241,7 +241,7 @@ public class TestDisplayLifecycle02NEWT extends UITestCase {
GLWindow window2 = createWindow(caps, width, height);
Assert.assertSame(screen, window2.getScreen());
Assert.assertSame(display, window2.getScreen().getDisplay());
- final Rectangle screenBoundsInWinU = screen.getViewportInWindowUnits(window2);
+ final RectangleImmutable screenBoundsInWinU = screen.getViewportInWindowUnits();
window2.setPosition(screenBoundsInWinU.getWidth()-width, 0);
Assert.assertEquals(0,Display.getActiveDisplayNumber());
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/TestGLWindows02NEWTAnimated.java b/src/test/com/jogamp/opengl/test/junit/newt/TestGLWindows02NEWTAnimated.java
index 6bad27384..2987fd389 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/TestGLWindows02NEWTAnimated.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/TestGLWindows02NEWTAnimated.java
@@ -36,6 +36,7 @@ import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
import javax.media.nativewindow.util.Rectangle;
+import javax.media.nativewindow.util.RectangleImmutable;
import javax.media.opengl.*;
import com.jogamp.opengl.util.Animator;
@@ -187,7 +188,7 @@ public class TestGLWindows02NEWTAnimated extends UITestCase {
GLWindow window2 = createWindow(screen, caps, width-10, height-10, true /* onscreen */, false /* undecorated */, true /* vsync */);
Assert.assertNotNull(window2);
- final Rectangle screenBoundsInWinU = screen.getViewportInWindowUnits(window2);
+ final RectangleImmutable screenBoundsInWinU = screen.getViewportInWindowUnits();
window2.setPosition(screenBoundsInWinU.getWidth()-width, 0);
Animator animator = new Animator();
@@ -254,7 +255,7 @@ public class TestGLWindows02NEWTAnimated extends UITestCase {
Assert.assertNotNull(screen2);
GLWindow window2 = createWindow(screen2, caps, width-10, height-10, true /* onscreen */, false /* undecorated */, true /* vsync */);
Assert.assertNotNull(window2);
- final Rectangle screen2BoundsInWinU = screen2.getViewportInWindowUnits(window2);
+ final RectangleImmutable screen2BoundsInWinU = screen2.getViewportInWindowUnits();
window2.setPosition(screen2BoundsInWinU.getWidth()-width, 0);
Animator animator = new Animator();
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/ManualScreenMode03aNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/ManualScreenMode03aNEWT.java
index 464efa5bb..ee71ba93d 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/ManualScreenMode03aNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/ManualScreenMode03aNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.newt.mm;
import java.io.IOException;
@@ -47,13 +47,13 @@ import java.util.List;
import javax.media.nativewindow.util.Dimension;
/**
- * Manual testing the ScreenImpl shutdown hook,
+ * Manual testing the ScreenImpl shutdown hook,
* which shall reset the ScreenMode to it's original state
* when the application exists (normal or ctrl-c).
*/
public class ManualScreenMode03aNEWT extends UITestCase {
static int waitTime = 7000; // 1 sec
-
+
static GLWindow createWindow(Screen screen, GLCapabilities caps, int width, int height, boolean onscreen, boolean undecorated) {
caps.setOnscreen(onscreen);
@@ -73,28 +73,27 @@ public class ManualScreenMode03aNEWT extends UITestCase {
Screen screen = NewtFactory.createScreen(display, 0); // screen 0
GLWindow window = createWindow(screen, caps, width, height, true /* onscreen */, false /* undecorated */);
- List<MonitorMode> monitorModes = screen.getMonitorModes();
- if(null==monitorModes) {
- // no support ..
- System.err.println("Your platform has no ScreenMode change support, sorry");
- return;
- }
Animator animator = new Animator(window);
animator.start();
MonitorDevice monitor = window.getMainMonitor();
+
MonitorMode mmCurrent = monitor.queryCurrentMode();
MonitorMode mmOrig = monitor.getOriginalMode();
System.err.println("[0] orig : "+mmOrig);
System.err.println("[0] current: "+mmCurrent);
-
+ List<MonitorMode> monitorModes = monitor.getSupportedModes();
+ if(null==monitorModes) {
+ // no support ..
+ System.err.println("Your platform has no ScreenMode change support, sorry");
+ return;
+ }
monitorModes = MonitorModeUtil.filterByFlags(monitorModes, 0); // no interlace, double-scan etc
monitorModes = MonitorModeUtil.filterByRotation(monitorModes, 0);
monitorModes = MonitorModeUtil.filterByResolution(monitorModes, new Dimension(801, 601));
monitorModes = MonitorModeUtil.filterByRate(monitorModes, mmOrig.getRefreshRate());
monitorModes = MonitorModeUtil.getHighestAvailableBpp(monitorModes);
-
- MonitorMode mm = (MonitorMode) monitorModes.get(0);
+ MonitorMode mm = monitorModes.get(0);
System.err.println("[0] set current: "+mm);
monitor.setCurrentMode(mm);
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java
index 93e005b53..c00f02e7e 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,12 +20,12 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.newt.mm;
import java.io.IOException;
@@ -68,11 +68,11 @@ import jogamp.newt.MonitorModeProps;
public class TestScreenMode00aNEWT extends UITestCase {
static int screenIdx = 0;
static int width, height;
-
+
static int waitTimeShort = 4; //1 sec
static int waitTimeLong = 6; //6 sec
-
-
+
+
@BeforeClass
public static void initClass() {
@@ -88,38 +88,39 @@ public class TestScreenMode00aNEWT extends UITestCase {
final DimensionImmutable res = new Dimension(640, 480);
final SurfaceSize surfsz = new SurfaceSize(res, 32);
final MonitorMode modeOut = new MonitorMode(surfsz, 60.0f, 0, 0);
- System.err.println("00 out: "+modeOut);
- final MonitorModeProps.Cache cache = new MonitorModeProps.Cache();
+ System.err.println("00 out: "+modeOut);
+ final MonitorModeProps.Cache cache = new MonitorModeProps.Cache();
cache.monitorModes.add(modeOut);
{
final int[] props = MonitorModeProps.streamOutMonitorMode(modeOut);
final MonitorMode modeIn = MonitorModeProps.streamInMonitorMode(null, cache, props, 0);
System.err.println("00 in : "+modeIn);
-
+
Assert.assertEquals(modeOut.getSurfaceSize().getResolution(), modeIn.getSurfaceSize().getResolution());
-
+
Assert.assertEquals(modeOut.getSurfaceSize(), modeIn.getSurfaceSize());
-
+
Assert.assertEquals(modeOut.hashCode(), modeIn.hashCode());
-
- Assert.assertEquals(modeOut, modeIn);
+
+ Assert.assertEquals(modeOut, modeIn);
}
-
+
final DimensionImmutable sizeMM = new Dimension(50, 50);
final Rectangle viewport = new Rectangle(0, 0, 1920, 1080);
final ArrayHashSet<MonitorMode> supportedModes = new ArrayHashSet<MonitorMode>();
supportedModes.add(modeOut);
- final MonitorDevice monOut = new MonitorDeviceImpl(null, -1, sizeMM, viewport, modeOut, supportedModes);
+ final MonitorDevice monOut = new MonitorDeviceImpl(null, -1, sizeMM, viewport, viewport, modeOut, supportedModes);
System.err.println("01 out : "+monOut);
cache.monitorDevices.add(monOut);
{
final int[] props = MonitorModeProps.streamOutMonitorDevice(monOut);
final MonitorDevice monIn = MonitorModeProps.streamInMonitorDevice(null, cache, null, props, 0);
System.err.println("01 in : "+monIn);
-
- Assert.assertEquals(monOut.getCurrentMode(), monOut.getOriginalMode());
+
+ Assert.assertEquals(monOut.getCurrentMode(), monOut.getOriginalMode());
Assert.assertEquals(monOut.getSupportedModes(), monIn.getSupportedModes());
Assert.assertEquals(monOut.getViewport(), monIn.getViewport());
+ Assert.assertEquals(monOut.getViewportInWindowUnits(), monIn.getViewportInWindowUnits());
Assert.assertEquals(monOut.getOriginalMode(), monIn.getOriginalMode());
Assert.assertEquals(monOut.getCurrentMode(), monIn.getCurrentMode());
Assert.assertEquals(monOut.hashCode(), monIn.hashCode());
@@ -162,7 +163,7 @@ public class TestScreenMode00aNEWT extends UITestCase {
mmPre = mm;
}
}
-
+
List<MonitorDevice> monitors = screen.getMonitorDevices();
Assert.assertTrue(monitors.size()>0);
int j=0;
@@ -184,7 +185,7 @@ public class TestScreenMode00aNEWT extends UITestCase {
Assert.assertTrue(allMonitorModes.containsAll(modes));
MonitorMode sm_o = monitor.getOriginalMode();
- Assert.assertNotNull(sm_o);
+ Assert.assertNotNull(sm_o);
MonitorMode sm_c = monitor.queryCurrentMode();
System.err.println("[0] orig : "+sm_o);
System.err.println("[0] current: "+sm_c);
@@ -203,7 +204,7 @@ public class TestScreenMode00aNEWT extends UITestCase {
return Integer.parseInt(a);
} catch (Exception ex) { throw new RuntimeException(ex); }
}
-
+
public static void main(String args[]) throws IOException {
for(int i=0; i<args.length; i++) {
if(args[i].equals("-screen")) {
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00cNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00cNEWT.java
index de856e569..3a5e96880 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00cNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00cNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,15 +20,16 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.newt.mm;
import java.io.IOException;
+
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLProfile;
@@ -56,6 +57,7 @@ import java.util.List;
import javax.media.nativewindow.NativeWindowFactory;
import javax.media.nativewindow.util.Dimension;
+import javax.media.nativewindow.util.Rectangle;
/**
* Tests X11 XRandR MonitorMode reset via {@link UITestCase#resetXRandRIfX11()}.
@@ -65,10 +67,13 @@ public class TestScreenMode00cNEWT extends UITestCase {
static boolean manualTest = false;
static GLProfile glp;
static int width, height;
-
+
static final int waitTimeShort = 2000;
static long duration = waitTimeShort;
+ static int mm_width = 800;
+ static int mm_height = 600;
+
@BeforeClass
public static void initClass() {
setResetXRandRIfX11AfterClass();
@@ -86,7 +91,7 @@ public class TestScreenMode00cNEWT extends UITestCase {
public static void releaseClass() throws InterruptedException {
Thread.sleep(waitTimeShort);
}
-
+
static Window createWindow(Screen screen, GLCapabilities caps, String name, int x, int y, int width, int height) {
Assert.assertNotNull(caps);
@@ -107,7 +112,7 @@ public class TestScreenMode00cNEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForRealized(window, false));
}
}
-
+
@Test
public void testScreenModeChange01() throws InterruptedException {
Thread.sleep(waitTimeShort);
@@ -119,7 +124,13 @@ public class TestScreenMode00cNEWT extends UITestCase {
final Screen screen = NewtFactory.createScreen(display, 0); // screen 0
Assert.assertNotNull(screen);
final Window window0 = createWindow(screen, caps, "win0", 0, 0, width, height);
- Assert.assertNotNull(window0);
+ Assert.assertNotNull(window0);
+
+ Rectangle window0WindowBounds = window0.getBounds();
+ Rectangle window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.0: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.0: Window bounds : "+window0SurfaceBounds+" [pixels]");
+ System.err.println("Test.0: Screen viewport : "+screen.getViewport()+" [pixels]");
final List<MonitorMode> allMonitorModes = screen.getMonitorModes();
Assert.assertTrue(allMonitorModes.size()>0);
@@ -131,7 +142,6 @@ public class TestScreenMode00cNEWT extends UITestCase {
}
final MonitorDevice monitor = screen.getMonitorDevices().get(0);
-
List<MonitorMode> monitorModes = monitor.getSupportedModes();
Assert.assertTrue(monitorModes.size()>0);
if(monitorModes.size()==1) {
@@ -141,7 +151,7 @@ public class TestScreenMode00cNEWT extends UITestCase {
return;
}
Assert.assertTrue(allMonitorModes.containsAll(monitorModes));
-
+
final MonitorMode mmSet0 = monitor.queryCurrentMode();
Assert.assertNotNull(mmSet0);
final MonitorMode mmOrig = monitor.getOriginalMode();
@@ -149,7 +159,7 @@ public class TestScreenMode00cNEWT extends UITestCase {
System.err.println("[0] orig : "+mmOrig);
System.err.println("[0] current: "+mmSet0);
Assert.assertEquals(mmSet0, mmOrig);
-
+
monitorModes = MonitorModeUtil.filterByFlags(monitorModes, 0); // no interlace, double-scan etc
Assert.assertNotNull(monitorModes);
@@ -157,13 +167,13 @@ public class TestScreenMode00cNEWT extends UITestCase {
monitorModes = MonitorModeUtil.filterByRotation(monitorModes, 0);
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
- monitorModes = MonitorModeUtil.filterByResolution(monitorModes, new Dimension(801, 601));
+ monitorModes = MonitorModeUtil.filterByResolution(monitorModes, new Dimension(mm_width+1, mm_height+1));
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
monitorModes = MonitorModeUtil.filterByRate(monitorModes, mmOrig.getRefreshRate());
- Assert.assertNotNull(monitorModes);
+ Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
-
+
monitorModes = MonitorModeUtil.getHighestAvailableBpp(monitorModes);
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
@@ -171,14 +181,24 @@ public class TestScreenMode00cNEWT extends UITestCase {
// set mode
{
MonitorMode mm = monitorModes.get(0);
- System.err.println("[0] set current: "+mm);
+ System.err.println("[1] set current: "+mm);
final boolean smOk = monitor.setCurrentMode(mm);
- MonitorMode mmCurrent = monitor.getCurrentMode();
- System.err.println("[0] has current: "+mmCurrent+", changeOK "+smOk);
+ MonitorMode mmCachedCurrent = monitor.getCurrentMode();
+ MonitorMode mmQueriedCurrent = monitor.queryCurrentMode();
+ boolean mmCurrentEquals = mmQueriedCurrent.equals(mmCachedCurrent);
+ System.err.println("[1] changeOK : "+smOk);
+ System.err.println("[1] has current cached : "+mmCachedCurrent);
+ System.err.println("[1] has current queried : "+mmQueriedCurrent+", equal "+mmCurrentEquals);
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.1: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.1: Window bounds : "+window0SurfaceBounds+" [pixels]");
+ System.err.println("Test.1: Screen viewport : "+screen.getViewport()+" [pixels]");
+
Assert.assertTrue(monitor.isModeChangedByUs());
- Assert.assertEquals(mm, mmCurrent);
- Assert.assertNotSame(mmOrig, mmCurrent);
- Assert.assertEquals(mmCurrent, monitor.queryCurrentMode());
+ Assert.assertEquals(mm, mmCachedCurrent);
+ Assert.assertNotSame(mmOrig, mmCachedCurrent);
+ Assert.assertEquals(mmCachedCurrent, mmQueriedCurrent);
Assert.assertTrue(smOk);
}
@@ -193,13 +213,13 @@ public class TestScreenMode00cNEWT extends UITestCase {
UITestCase.resetXRandRIfX11();
System.err.println("XRandR Reset :"+monitor.queryCurrentMode());
validateScreenModeReset0(mmOrig);
-
+
destroyWindow(window0);
Thread.sleep(waitTimeShort);
validateScreenModeReset(mmOrig);
}
-
+
void validateScreenModeReset0(final MonitorMode mmOrig) {
final Display display = NewtFactory.createDisplay(null); // local display
Assert.assertNotNull(display);
@@ -208,10 +228,10 @@ public class TestScreenMode00cNEWT extends UITestCase {
screen.addReference();
Assert.assertEquals(true,display.isNativeValid());
Assert.assertEquals(true,screen.isNativeValid());
-
+
final MonitorDevice monitor = screen.getMonitorDevices().get(0);
Assert.assertEquals(mmOrig, monitor.queryCurrentMode());
-
+
screen.removeReference();
}
void validateScreenModeReset(final MonitorMode mmOrig) {
@@ -224,10 +244,10 @@ public class TestScreenMode00cNEWT extends UITestCase {
screen.addReference();
Assert.assertEquals(true,display.isNativeValid());
Assert.assertEquals(true,screen.isNativeValid());
-
+
final MonitorDevice monitor = screen.getMonitorDevices().get(0);
Assert.assertEquals(mmOrig, monitor.getCurrentMode());
-
+
screen.removeReference();
Assert.assertEquals(false,display.isNativeValid());
Assert.assertEquals(false,screen.isNativeValid());
@@ -239,8 +259,15 @@ public class TestScreenMode00cNEWT extends UITestCase {
if(args[i].equals("-time")) {
i++;
duration = MiscUtils.atol(args[i], duration);
+ } else if(args[i].equals("-mwidth")) {
+ i++;
+ mm_width = MiscUtils.atoi(args[i], mm_width);
+ } else if(args[i].equals("-mheight")) {
+ i++;
+ mm_height = MiscUtils.atoi(args[i], mm_height);
}
}
+ System.err.println("Desired mode w/ resolution "+mm_width+"x"+mm_height);
String tstname = TestScreenMode00cNEWT.class.getName();
org.junit.runner.JUnitCore.main(tstname);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01aNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01aNEWT.java
index 0f3dbeefc..808571d05 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01aNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01aNEWT.java
@@ -3,14 +3,14 @@
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
@@ -20,15 +20,16 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-
+
package com.jogamp.opengl.test.junit.newt.mm;
import java.io.IOException;
+
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLProfile;
@@ -49,10 +50,13 @@ import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.newt.util.MonitorModeUtil;
import com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2;
import com.jogamp.opengl.test.junit.util.AWTRobotUtil;
+import com.jogamp.opengl.test.junit.util.MiscUtils;
import com.jogamp.opengl.test.junit.util.UITestCase;
import java.util.List;
+
import javax.media.nativewindow.util.Dimension;
+import javax.media.nativewindow.util.Rectangle;
/**
* <p>
@@ -62,16 +66,19 @@ import javax.media.nativewindow.util.Dimension;
* <p>
* Documents remedy B) for NV RANDR/GL bug
* </p>
- *
+ *
* @see TestScreenMode01dNEWT#cleanupGL()
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestScreenMode01aNEWT extends UITestCase {
static GLProfile glp;
static int width, height;
-
- static int waitTimeShort = 2000;
- static int waitTimeLong = 2000;
+
+ static long waitTimeShort = 2000;
+ static long duration = 2000;
+
+ static int mm_width = 800;
+ static int mm_height = 600;
@BeforeClass
public static void initClass() {
@@ -85,7 +92,7 @@ public class TestScreenMode01aNEWT extends UITestCase {
public static void releaseClass() throws InterruptedException {
Thread.sleep(waitTimeShort);
}
-
+
static Window createWindow(Screen screen, GLCapabilities caps, String name, int x, int y, int width, int height) {
Assert.assertNotNull(caps);
@@ -106,7 +113,7 @@ public class TestScreenMode01aNEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForRealized(window, false));
}
}
-
+
@Test
public void testScreenModeChange01() throws InterruptedException {
Thread.sleep(waitTimeShort);
@@ -118,7 +125,16 @@ public class TestScreenMode01aNEWT extends UITestCase {
final Screen screen = NewtFactory.createScreen(display, 0); // screen 0
Assert.assertNotNull(screen);
final Window window0 = createWindow(screen, caps, "win0", 0, 0, width, height);
- Assert.assertNotNull(window0);
+ Assert.assertNotNull(window0);
+
+ final MonitorDevice monitor = screen.getMonitorDevices().get(0);
+
+ Rectangle window0WindowBounds = window0.getBounds();
+ Rectangle window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.0: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.0: Window bounds : "+window0SurfaceBounds+" [pixels]");
+ System.err.println("Test.0: Screen viewport : "+screen.getViewport()+" [pixels], "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.0: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
final List<MonitorMode> allMonitorModes = screen.getMonitorModes();
Assert.assertTrue(allMonitorModes.size()>0);
@@ -129,8 +145,6 @@ public class TestScreenMode01aNEWT extends UITestCase {
return;
}
- final MonitorDevice monitor = screen.getMonitorDevices().get(0);
-
List<MonitorMode> monitorModes = monitor.getSupportedModes();
Assert.assertTrue(monitorModes.size()>0);
if(monitorModes.size()==1) {
@@ -140,7 +154,7 @@ public class TestScreenMode01aNEWT extends UITestCase {
return;
}
Assert.assertTrue(allMonitorModes.containsAll(monitorModes));
-
+
final MonitorMode mmSet0 = monitor.queryCurrentMode();
Assert.assertNotNull(mmSet0);
final MonitorMode mmOrig = monitor.getOriginalMode();
@@ -148,7 +162,7 @@ public class TestScreenMode01aNEWT extends UITestCase {
System.err.println("[0] orig : "+mmOrig);
System.err.println("[0] current: "+mmSet0);
Assert.assertEquals(mmSet0, mmOrig);
-
+
monitorModes = MonitorModeUtil.filterByFlags(monitorModes, 0); // no interlace, double-scan etc
Assert.assertNotNull(monitorModes);
@@ -156,13 +170,13 @@ public class TestScreenMode01aNEWT extends UITestCase {
monitorModes = MonitorModeUtil.filterByRotation(monitorModes, 0);
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
- monitorModes = MonitorModeUtil.filterByResolution(monitorModes, new Dimension(801, 601));
+ monitorModes = MonitorModeUtil.filterByResolution(monitorModes, new Dimension(mm_width+1, mm_height+1));
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
monitorModes = MonitorModeUtil.filterByRate(monitorModes, mmOrig.getRefreshRate());
- Assert.assertNotNull(monitorModes);
+ Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
-
+
monitorModes = MonitorModeUtil.getHighestAvailableBpp(monitorModes);
Assert.assertNotNull(monitorModes);
Assert.assertTrue(monitorModes.size()>0);
@@ -170,18 +184,29 @@ public class TestScreenMode01aNEWT extends UITestCase {
// set mode
{
MonitorMode mm = monitorModes.get(0);
- System.err.println("[0] set current: "+mm);
+ System.err.println("[1] set current: "+mm);
final boolean smOk = monitor.setCurrentMode(mm);
- MonitorMode mmCurrent = monitor.getCurrentMode();
- System.err.println("[0] has current: "+mmCurrent+", changeOK "+smOk);
+ MonitorMode mmCachedCurrent = monitor.getCurrentMode();
+ MonitorMode mmQueriedCurrent = monitor.queryCurrentMode();
+ boolean mmCurrentEquals = mmQueriedCurrent.equals(mmCachedCurrent);
+ System.err.println("[1] changeOK : "+smOk);
+ System.err.println("[1] has current cached : "+mmCachedCurrent);
+ System.err.println("[1] has current queried : "+mmQueriedCurrent+", equal "+mmCurrentEquals);
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.1: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.1: Window bounds : "+window0SurfaceBounds+" [pixels]");
+ System.err.println("Test.1: Screen viewport : "+screen.getViewport()+" [pixels], "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.1: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
+
Assert.assertTrue(monitor.isModeChangedByUs());
- Assert.assertEquals(mm, mmCurrent);
- Assert.assertNotSame(mmOrig, mmCurrent);
- Assert.assertEquals(mmCurrent, monitor.queryCurrentMode());
+ Assert.assertEquals(mm, mmCachedCurrent);
+ Assert.assertNotSame(mmOrig, mmCachedCurrent);
+ Assert.assertEquals(mmCachedCurrent, monitor.queryCurrentMode());
Assert.assertTrue(smOk);
}
- Thread.sleep(waitTimeShort);
+ Thread.sleep(duration);
Assert.assertEquals(true,display.isNativeValid());
Assert.assertEquals(true,screen.isNativeValid());
@@ -196,12 +221,12 @@ public class TestScreenMode01aNEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForRealized(screen, false));
Assert.assertEquals(false,screen.isNativeValid());
Assert.assertEquals(false,display.isNativeValid());
-
+
Thread.sleep(waitTimeShort);
-
+
validateScreenModeReset(mmOrig, 0);
}
-
+
void validateScreenModeReset(final MonitorMode mmOrig, int mmIdx) {
final Display display = NewtFactory.createDisplay(null); // local display
Assert.assertNotNull(display);
@@ -212,16 +237,29 @@ public class TestScreenMode01aNEWT extends UITestCase {
screen.addReference();
Assert.assertEquals(true,display.isNativeValid());
Assert.assertEquals(true,screen.isNativeValid());
-
+
final MonitorDevice monitor = screen.getMonitorDevices().get(0);
Assert.assertEquals(mmOrig, monitor.getCurrentMode());
-
+
screen.removeReference();
Assert.assertEquals(false,display.isNativeValid());
Assert.assertEquals(false,screen.isNativeValid());
}
public static void main(String args[]) throws IOException {
+ for(int i=0; i<args.length; i++) {
+ if(args[i].equals("-time")) {
+ i++;
+ duration = MiscUtils.atol(args[i], duration);
+ } else if(args[i].equals("-mwidth")) {
+ i++;
+ mm_width = MiscUtils.atoi(args[i], mm_width);
+ } else if(args[i].equals("-mheight")) {
+ i++;
+ mm_height = MiscUtils.atoi(args[i], mm_height);
+ }
+ }
+ System.err.println("Desired mode w/ resolution "+mm_width+"x"+mm_height);
String tstname = TestScreenMode01aNEWT.class.getName();
org.junit.runner.JUnitCore.main(tstname);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01bNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01bNEWT.java
index ac5e7e53c..6bf9831dc 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01bNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01bNEWT.java
@@ -156,9 +156,10 @@ public class TestScreenMode01bNEWT extends UITestCase {
GLWindow window0 = createWindow(screen, caps, "win0", screenXPos, screenYPos, width, height);
Assert.assertNotNull(window0);
- Rectangle window0ScreenRect = window0.getSurfaceBounds();
- System.err.println("Test.0: Window bounds: "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.0: Window screenRect: "+window0ScreenRect+" [pixels]");
+ Rectangle window0WindowBounds = window0.getBounds();
+ Rectangle window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.0: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.0: Window bounds : "+window0SurfaceBounds+" [pixels]");
final Animator anim = new Animator(window0);
anim.start();
@@ -224,12 +225,13 @@ public class TestScreenMode01bNEWT extends UITestCase {
Assert.assertTrue(smOk);
}
- window0ScreenRect = window0.getSurfaceBounds();
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
System.err.println("Test.1: Screen : "+screen);
- System.err.println("Test.1: Window bounds : "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.1: Window screenRect: "+window0ScreenRect+" [pixels]");
+ System.err.println("Test.1: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.1: Window bounds : "+window0SurfaceBounds+" [pixels]");
System.err.println("Test.1: Screen viewport : "+screen.getViewport()+" [pixels]");
- System.err.println("Test.1: Window monitor : "+monitor.getViewport()+" [pixels]");
+ System.err.println("Test.1: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
System.err.println("Test.1: Window main-mon : "+window0.getMainMonitor());
Thread.sleep(duration);
@@ -250,11 +252,13 @@ public class TestScreenMode01bNEWT extends UITestCase {
Assert.assertTrue(smOk);
}
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
System.err.println("Test.2: Screen : "+screen);
- System.err.println("Test.2: Window bounds : "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.2: Window screenRect: "+window0ScreenRect+" [pixels]");
+ System.err.println("Test.2: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.2: Window bounds : "+window0SurfaceBounds+" [pixels]");
System.err.println("Test.2: Screen viewport : "+screen.getViewport()+" [pixels]");
- System.err.println("Test.2: Window monitor : "+monitor.getViewport()+" [pixels]");
+ System.err.println("Test.2: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
System.err.println("Test.2: Window main-mon : "+window0.getMainMonitor());
Thread.sleep(duration);
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01cNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01cNEWT.java
index b48d582ed..986f92273 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01cNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01cNEWT.java
@@ -103,7 +103,7 @@ public class TestScreenMode01cNEWT extends UITestCase {
static void destroyWindow(Window window) throws InterruptedException {
if(null!=window) {
window.destroy();
- Assert.assertTrue(AWTRobotUtil.waitForRealized(window, false));
+ AWTRobotUtil.waitForRealized(window, false); // don't override a previous assertion failure
}
}
@@ -119,7 +119,7 @@ public class TestScreenMode01cNEWT extends UITestCase {
testScreenFullscreenImpl(screen, monitorVp.getX(), monitorVp.getY(), false, null);
} finally {
screen.removeReference();
- Assert.assertTrue(AWTRobotUtil.waitForRealized(screen, false));
+ AWTRobotUtil.waitForRealized(screen, false); // don't override a previous assertion failure
}
}
@@ -139,7 +139,7 @@ public class TestScreenMode01cNEWT extends UITestCase {
testScreenFullscreenImpl(screen, monitorVp.getX(), monitorVp.getY(), false, null);
} finally {
screen.removeReference();
- Assert.assertTrue(AWTRobotUtil.waitForRealized(screen, false));
+ AWTRobotUtil.waitForRealized(screen, false); // don't override a previous assertion failure
}
}
@@ -151,9 +151,8 @@ public class TestScreenMode01cNEWT extends UITestCase {
Assert.assertNotNull(screen);
screen.addReference(); // trigger creation
try {
- final int crtCount = screen.getMonitorDevices().size();
- if( 2 >= crtCount ) {
- System.err.println("Test Disabled (2): Spanning monitor count "+2+" >= screen monitor count: "+screen);
+ if( 2 > screen.getMonitorDevices().size() ) {
+ System.err.println("Test Disabled (2): Spanning monitor count < 2: "+screen);
return;
}
final ArrayList<MonitorDevice> monitors = new ArrayList<MonitorDevice>();
@@ -163,7 +162,7 @@ public class TestScreenMode01cNEWT extends UITestCase {
testScreenFullscreenImpl(screen, monitorVp.getX()+50, monitorVp.getY()+50, true, monitors);
} finally {
screen.removeReference();
- Assert.assertTrue(AWTRobotUtil.waitForRealized(screen, false));
+ AWTRobotUtil.waitForRealized(screen, false); // don't override a previous assertion failure
}
}
@@ -183,7 +182,7 @@ public class TestScreenMode01cNEWT extends UITestCase {
testScreenFullscreenImpl(screen, monitorVp.getX()-50, monitorVp.getY()+50, true, null);
} finally {
screen.removeReference();
- Assert.assertTrue(AWTRobotUtil.waitForRealized(screen, false));
+ AWTRobotUtil.waitForRealized(screen, false); // don't override a previous assertion failure
}
}
@@ -201,9 +200,10 @@ public class TestScreenMode01cNEWT extends UITestCase {
GLWindow window0 = createWindow(screen, caps, "win0", screenXPos, screenYPos, width, height);
Assert.assertNotNull(window0);
- Rectangle window0ScreenRect = window0.getSurfaceBounds();
- System.err.println("Test.0: Window bounds : "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.0: Window screenRect: "+window0ScreenRect+" [pixels]");
+ Rectangle window0WindowBounds = window0.getBounds();
+ Rectangle window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.0: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.0: Window bounds : "+window0SurfaceBounds+" [pixels]");
System.err.println("Test.0: Screen viewport : "+screen.getViewport()+" [pixels]");
final Animator anim = new Animator(window0);
@@ -221,32 +221,35 @@ public class TestScreenMode01cNEWT extends UITestCase {
}
monitor = window0.getMainMonitor();
- window0ScreenRect = window0.getSurfaceBounds();
- System.err.println("Test.1: Window bounds : "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.1: Window screenRect: "+window0ScreenRect+" [pixels]");
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
+ System.err.println("Test.1: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.1: Window bounds : "+window0SurfaceBounds+" [pixels]");
System.err.println("Test.1: Screen viewport : "+screen.getViewport()+" [pixels]");
- System.err.println("Test.1: Window monitor : "+monitor.getViewport()+" [pixels]");
+ System.err.println("Test.1: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
if( !spanAcrossMonitors ) {
- Assert.assertEquals(monitor.getViewport(), window0ScreenRect);
+ Assert.assertEquals(monitor.getViewportInWindowUnits(), window0WindowBounds);
} else {
List<MonitorDevice> monitorsUsed = monitors;
if( null == monitorsUsed ) {
monitorsUsed = window0.getScreen().getMonitorDevices();
}
- Rectangle monitorsUsedViewport = MonitorDevice.unionOfViewports(new Rectangle(), monitorsUsed);
- Assert.assertEquals(monitorsUsedViewport, window0ScreenRect);
+ Rectangle monitorsUsedViewport = new Rectangle();
+ MonitorDevice.unionOfViewports(null, monitorsUsedViewport, monitorsUsed);
+ Assert.assertEquals(monitorsUsedViewport, window0WindowBounds);
}
Thread.sleep(duration);
window0.setFullscreen(false);
- window0ScreenRect = window0.getSurfaceBounds();
+ window0WindowBounds = window0.getBounds();
+ window0SurfaceBounds = window0.getSurfaceBounds();
monitor = window0.getMainMonitor();
- System.err.println("Test.2: Window bounds : "+window0.getX()+"/"+window0.getY()+" "+window0.getWindowWidth()+"x"+window0.getWindowHeight()+" [wu] within "+screen.getViewportInWindowUnits(window0)+" [wu]");
- System.err.println("Test.2: Window screenRect: "+window0ScreenRect+" [pixels]");
+ System.err.println("Test.2: Window bounds : "+window0WindowBounds+" [wu] within "+screen.getViewportInWindowUnits()+" [wu]");
+ System.err.println("Test.2: Window bounds : "+window0SurfaceBounds+" [pixels]");
System.err.println("Test.2: Screen viewport : "+screen.getViewport()+" [pixels]");
- System.err.println("Test.2: Window monitor : "+monitor.getViewport()+" [pixels]");
+ System.err.println("Test.2: Monitor viewport : "+monitor.getViewport()+" [pixels], "+monitor.getViewportInWindowUnits()+" [wu]");
Thread.sleep(duration);
anim.stop();
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01dNEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01dNEWT.java
index d9ea39365..d03306c4f 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01dNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode01dNEWT.java
@@ -55,7 +55,6 @@ import com.jogamp.opengl.test.junit.util.UITestCase;
import java.util.List;
import javax.media.nativewindow.util.Dimension;
-import javax.media.nativewindow.util.Rectangle;
import javax.media.nativewindow.util.RectangleImmutable;
/**
@@ -164,8 +163,8 @@ public class TestScreenMode01dNEWT extends UITestCase {
final MonitorDevice monitor = window.getMainMonitor();
Assert.assertEquals(false, window.isFullscreen());
- Assert.assertEquals(width, window.getSurfaceWidth());
- Assert.assertEquals(height, window.getSurfaceHeight());
+ Assert.assertEquals(width, window.getWindowWidth());
+ Assert.assertEquals(height, window.getWindowHeight());
window.setFullscreen(true);
Assert.assertEquals(true, window.isFullscreen());
@@ -176,8 +175,8 @@ public class TestScreenMode01dNEWT extends UITestCase {
window.setFullscreen(false);
Assert.assertEquals(false, window.isFullscreen());
- Assert.assertEquals(width, window.getSurfaceWidth());
- Assert.assertEquals(height, window.getSurfaceHeight());
+ Assert.assertEquals(width, window.getWindowWidth());
+ Assert.assertEquals(height, window.getWindowHeight());
Thread.sleep(waitTimeShort);
@@ -210,8 +209,8 @@ public class TestScreenMode01dNEWT extends UITestCase {
GLWindow window = createWindow(screen, caps, width, height, true /* onscreen */, false /* undecorated */);
Assert.assertNotNull(window);
- final RectangleImmutable screenRect = window.getSurfaceBounds();
- final MonitorDevice monitor = screen.getMainMonitor( screenRect );
+ final RectangleImmutable winRect = window.getBounds();
+ final MonitorDevice monitor = screen.getMainMonitor( winRect );
List<MonitorMode> monitorModes = monitor.getSupportedModes();
Assert.assertTrue(monitorModes.size()>0);
@@ -284,7 +283,7 @@ public class TestScreenMode01dNEWT extends UITestCase {
Assert.assertEquals(false,screen.isNativeValid());
Assert.assertEquals(false,display.isNativeValid());
- validateScreenModeReset(mmOrig, screenRect);
+ validateScreenModeReset(mmOrig, winRect);
cleanupGL();
}
@@ -308,8 +307,8 @@ public class TestScreenMode01dNEWT extends UITestCase {
Animator animator = new Animator(window);
animator.start();
- final RectangleImmutable screenRect = window.getSurfaceBounds();
- final MonitorDevice monitor = screen.getMainMonitor(screenRect);
+ final RectangleImmutable winRect = window.getBounds();
+ final MonitorDevice monitor = screen.getMainMonitor(winRect);
MonitorMode mmCurrent = monitor.queryCurrentMode();
Assert.assertNotNull(mmCurrent);
MonitorMode mmOrig = monitor.getOriginalMode();
@@ -335,20 +334,20 @@ public class TestScreenMode01dNEWT extends UITestCase {
Assert.assertNotNull(monitorMode);
if(preFS) {
- System.err.println("[0] set FS pre 0: "+window.isFullscreen());
+ System.err.println("[1] set FS pre 0: "+window.isFullscreen());
window.setFullscreen(true);
- System.err.println("[0] set FS pre 1: "+window.isFullscreen());
+ System.err.println("[1] set FS pre 1: "+window.isFullscreen());
Assert.assertEquals(true, window.isFullscreen());
- System.err.println("[0] set FS pre X: "+window.isFullscreen());
+ System.err.println("[1] set FS pre X: "+window.isFullscreen());
}
Thread.sleep(waitTimeShort);
// set mode
{
- System.err.println("[0] set current: "+monitorMode);
+ System.err.println("[2] set current: "+monitorMode);
final boolean smOk = monitor.setCurrentMode(monitorMode);
mmCurrent = monitor.getCurrentMode();
- System.err.println("[0] has current: "+mmCurrent+", changeOK "+smOk);
+ System.err.println("[2] has current: "+mmCurrent+", changeOK "+smOk);
Assert.assertTrue(monitor.isModeChangedByUs());
Assert.assertEquals(monitorMode, mmCurrent);
Assert.assertNotSame(mmOrig, mmCurrent);
@@ -357,19 +356,19 @@ public class TestScreenMode01dNEWT extends UITestCase {
}
if(!preFS) {
- System.err.println("[0] set FS post 0: "+window.isFullscreen());
+ System.err.println("[3] set FS post 0: "+window.isFullscreen());
window.setFullscreen(true);
Assert.assertEquals(true, window.isFullscreen());
- System.err.println("[0] set FS post X: "+window.isFullscreen());
+ System.err.println("[3] set FS post X: "+window.isFullscreen());
}
Thread.sleep(waitTimeLong);
if(!preFS) {
- System.err.println("[0] set !FS post 0: "+window.isFullscreen());
+ System.err.println("[4] set !FS post 0: "+window.isFullscreen());
window.setFullscreen(false);
Assert.assertEquals(false, window.isFullscreen());
- System.err.println("[0] set !FS post X: "+window.isFullscreen());
+ System.err.println("[4] set !FS post X: "+window.isFullscreen());
Thread.sleep(waitTimeShort);
}
@@ -391,10 +390,15 @@ public class TestScreenMode01dNEWT extends UITestCase {
Assert.assertEquals(false,screen.isNativeValid());
Assert.assertEquals(false,display.isNativeValid());
- validateScreenModeReset(mmOrig, screenRect);
+ validateScreenModeReset(mmOrig, winRect);
cleanupGL();
}
+ /**
+ *
+ * @param mmOrig
+ * @param rect in window units
+ */
void validateScreenModeReset(final MonitorMode mmOrig, final RectangleImmutable rect) {
final Display display = NewtFactory.createDisplay(null); // local display
Assert.assertNotNull(display);
diff --git a/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java b/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java
index 417a1c506..a02a0bac7 100644
--- a/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java
@@ -110,8 +110,8 @@ public class TestParenting02NEWT extends UITestCase {
GLWindow glWindow1 = GLWindow.create(window1);
Assert.assertNotNull(glWindow1);
glWindow1.setSize(width, height);
- Assert.assertEquals(width,glWindow1.getSurfaceWidth());
- Assert.assertEquals(height,glWindow1.getSurfaceHeight());
+ Assert.assertEquals(width,glWindow1.getWindowWidth());
+ Assert.assertEquals(height,glWindow1.getWindowHeight());
glWindow1.setTitle("test01NewtOnNewtParentChildDraw - PARENT");
glWindow1.setPosition(x,y);
//glWindow1.addKeyListener(new TraceKeyAdapter(new KeyAction(eventFifo)));
@@ -134,7 +134,7 @@ public class TestParenting02NEWT extends UITestCase {
//Assert.assertEquals(width/2,glWindow2.getWidth());
//Assert.assertEquals(height/2,glWindow2.getHeight());
glWindow2.setTitle("test01NewtOnNewtParentChildDraw - CHILD");
- glWindow2.setPosition(glWindow1.getSurfaceWidth()/2, glWindow1.getSurfaceHeight()/2);
+ glWindow2.setPosition(glWindow1.getWindowWidth()/2, glWindow1.getWindowHeight()/2);
//glWindow2.addKeyListener(new TraceKeyAdapter(new KeyAction(eventFifo)));
//glWindow2.addWindowListener(new TraceWindowAdapter(new WindowAction(eventFifo)));
// glWindow2.addMouseListener(new TraceMouseAdapter());
@@ -163,7 +163,7 @@ public class TestParenting02NEWT extends UITestCase {
x += 1;
y += 1;
// glWindow1.setPosition(x,y);
- glWindow2.setPosition(glWindow1.getSurfaceWidth()/2,glWindow1.getSurfaceHeight()/2-y);
+ glWindow2.setPosition(glWindow1.getWindowWidth()/2,glWindow1.getWindowHeight()/2-y);
Thread.sleep(step);
while( null != ( event = eventFifo.get() ) ) {