summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java9
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java18
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java18
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT0.java45
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT1.java16
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT2.java95
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java84
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java231
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java18
-rw-r--r--src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java10
10 files changed, 381 insertions, 163 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java
index 8f84e293d..f1c72cf57 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES1NEWT.java
@@ -138,12 +138,13 @@ public class TestSharedContextVBOES1NEWT extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForVisible(glWindow, true));
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(glWindow, true));
- System.err.println("Master Context: ");
- MiscUtils.dumpSharedGLContext(sharedDrawable.getContext());
- System.err.println("New Context: ");
- MiscUtils.dumpSharedGLContext(glWindow.getContext());
+ MiscUtils.dumpSharedGLContext("Master Context", sharedDrawable.getContext());
+ MiscUtils.dumpSharedGLContext("New Context", glWindow.getContext());
if( useShared ) {
Assert.assertEquals("Master Context not shared as expected", true, sharedDrawable.getContext().isShared());
+ Assert.assertEquals("Master Context is different", sharedDrawable.getContext(), glWindow.getContext().getSharedMaster());
+ } else {
+
}
Assert.assertEquals("New Context not shared as expected", useShared, glWindow.getContext().isShared());
Assert.assertEquals("Gears is not shared as expected", useShared, gears.usesSharedGears());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java
index a5b5653c0..fcbfcb19b 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java
@@ -157,12 +157,9 @@ public class TestSharedContextVBOES2AWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -307,12 +304,9 @@ public class TestSharedContextVBOES2AWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java
index 4c9cb7253..bac84d4fb 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java
@@ -148,12 +148,9 @@ public class TestSharedContextVBOES2AWT3b extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -260,12 +257,9 @@ public class TestSharedContextVBOES2AWT3b extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT0.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT0.java
index d2d1384e4..eeab0869a 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT0.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT0.java
@@ -122,8 +122,7 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
Assert.assertTrue("Ctx is shared before shared creation", !ctx1.isShared());
final InsetsImmutable insets = f1.getInsets();
- System.err.println("XXX-C-2.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-1.1", ctx1);
//
// 2nd
@@ -139,10 +138,8 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
{
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
- System.err.println("XXX-C-2.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-2.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-2.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-2.2", ctx2);
Assert.assertEquals("Ctx1 has unexpected number of created shares", 1, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 1, ctx2Shares.size());
@@ -165,12 +162,9 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
@@ -197,12 +191,9 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-D-0.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-D-0.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-D-0.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-D-0.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-D-0.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-D-0.3", ctx3);
Assert.assertTrue("Ctx1 is shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is shared", ctx2.isShared());
@@ -221,12 +212,9 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-D-1.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-D-1.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-D-1.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-D-1.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-D-1.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-D-1.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -245,12 +233,9 @@ public class TestSharedContextVBOES2NEWT0 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-D-2.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-D-2.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-D-2.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-D-2.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-D-2.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-D-2.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", !ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", !ctx2.isShared());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT1.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT1.java
index fb15509d0..e98957464 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT1.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT1.java
@@ -153,12 +153,14 @@ public class TestSharedContextVBOES2NEWT1 extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForVisible(glWindow, true));
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(glWindow, true));
- System.err.println("Master Context: ");
- MiscUtils.dumpSharedGLContext(sharedDrawable.getContext());
- System.err.println("New Context: ");
- MiscUtils.dumpSharedGLContext(glWindow.getContext());
+ final GLContext sharedMasterContext = sharedDrawable.getContext();
+ MiscUtils.dumpSharedGLContext("Master Context", sharedMasterContext);
+ MiscUtils.dumpSharedGLContext("New Context", glWindow.getContext());
if( useShared ) {
- Assert.assertEquals("Master Context not shared as expected", true, sharedDrawable.getContext().isShared());
+ Assert.assertEquals("Master Context not shared as expected", true, sharedMasterContext.isShared());
+ Assert.assertEquals("Master Context is different", sharedMasterContext, glWindow.getContext().getSharedMaster());
+ } else {
+ Assert.assertEquals("Master Context is not null", null, glWindow.getContext().getSharedMaster());
}
Assert.assertEquals("New Context not shared as expected", useShared, glWindow.getContext().isShared());
@@ -169,7 +171,7 @@ public class TestSharedContextVBOES2NEWT1 extends UITestCase {
return glWindow;
}
- @Test
+ // @Test
public void test01CommonAnimatorSharedOnscreen() throws InterruptedException {
initShared(true);
final Animator animator = new Animator();
@@ -202,7 +204,7 @@ public class TestSharedContextVBOES2NEWT1 extends UITestCase {
releaseShared();
}
- @Test
+ // @Test
public void test02CommonAnimatorSharedOffscreen() throws InterruptedException {
initShared(false);
final Animator animator = new Animator();
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT2.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT2.java
index a101c05d0..fb09e86ef 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT2.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT2.java
@@ -55,9 +55,8 @@ import org.junit.runners.MethodSorters;
* Sharing the VBO of 3 GearsES2 instances, each in their own GLWindow.
* <p>
* This is achieved by using the 1st GLWindow's GLContext as the <i>master</i>
- * and manually triggering creation of the 2nd and 3rd GLWindow when the 1st GLWindow's
- * GLContext becomes created. The trigger is performed by simply
- * inserting a GLRunnable in the 1st GLWindow, which makes the other visible.
+ * and synchronizing via GLSharedContextSetter to postpone creation
+ * of the 2nd and 3rd GLWindow until the 1st GLWindow's GLContext becomes created.
* </p>
* <p>
* Above method allows random creation of the 1st GLWindow, which triggers
@@ -107,6 +106,8 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
public void syncedOneAnimator(final boolean destroyCleanOrder) throws InterruptedException {
final Animator animator = new Animator();
+ animator.start();
+
final GearsES2 g1 = new GearsES2(0);
final GLWindow f1 = createGLWindow(0, 0, g1);
animator.add(f1);
@@ -116,31 +117,31 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
g2.setSharedGears(g1);
final GLWindow f2 = createGLWindow(f1.getX()+width+insets.getTotalWidth(),
f1.getY()+0, g2);
+ f2.setSharedAutoDrawable(f1);
animator.add(f2);
+ f2.setVisible(true);
final GearsES2 g3 = new GearsES2(0);
g3.setSharedGears(g1);
final GLWindow f3 = createGLWindow(f1.getX()+0,
f1.getY()+height+insets.getTotalHeight(), g3);
+ f3.setSharedAutoDrawable(f1);
animator.add(f3);
+ f3.setVisible(true);
- // f1's shared GLContext is ready !
- f1.invoke(false, new GLRunnable() {
- @Override
- public boolean run(final GLAutoDrawable drawable) {
- Assert.assertTrue("Ctx is shared before shared creation", !f1.getContext().isShared());
- f2.setSharedAutoDrawable(f1);
- f2.setVisible(true);
- f2.display(); // kick off GLContext ..
- f3.setSharedAutoDrawable(f1);
- f3.setVisible(true);
- f3.display(); // kick off GLContext ..
- return true;
- }
- });
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, false));
- f1.setVisible(true);
- f1.display(); // kick off GLContext .. and hence f2 + f3 creation
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, false));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, false));
+
+ f1.setVisible(true); // kick off f1 GLContext .. and hence allow f2 + f3 creation
Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, true));
@@ -157,8 +158,6 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, true));
Assert.assertTrue("Gears3 not initialized", g3.waitForInit(true));
- animator.start(); // post start animator, otherwise display will be suppressed
-
final GLContext ctx1 = f1.getContext();
final GLContext ctx2 = f2.getContext();
final GLContext ctx3 = f3.getContext();
@@ -166,12 +165,9 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -179,6 +175,9 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
Assert.assertEquals("Ctx3 has unexpected number of created shares", 2, ctx3Shares.size());
+ Assert.assertEquals("Ctx1 Master Context is different", ctx1, ctx1.getSharedMaster());
+ Assert.assertEquals("Ctx2 Master Context is different", ctx1, ctx2.getSharedMaster());
+ Assert.assertEquals("Ctx3 Master Context is different", ctx1, ctx3.getSharedMaster());
}
Assert.assertTrue("Gears1 is shared", !g1.usesSharedGears());
@@ -228,7 +227,6 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
final GLWindow f1 = createGLWindow(0, 0, g1);
a1.add(f1);
a1.start();
- f1.setVisible(true);
final InsetsImmutable insets = f1.getInsets();
@@ -237,29 +235,34 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
g2.setSharedGears(g1);
final GLWindow f2 = createGLWindow(f1.getX()+width+insets.getTotalWidth(),
f1.getY()+0, g2);
+ f2.setSharedAutoDrawable(f1);
a2.add(f2);
a2.start();
+ f2.setVisible(true);
final Animator a3 = new Animator();
final GearsES2 g3 = new GearsES2(0);
g3.setSharedGears(g1);
final GLWindow f3 = createGLWindow(f1.getX()+0,
f1.getY()+height+insets.getTotalHeight(), g3);
+ f3.setSharedAutoDrawable(f1);
a3.add(f3);
a3.start();
+ f3.setVisible(true);
- // f1's shared GLContext is ready !
- f1.invoke(false, new GLRunnable() {
- @Override
- public boolean run(final GLAutoDrawable drawable) {
- Assert.assertTrue("Ctx is shared before shared creation", !f1.getContext().isShared());
- f2.setSharedAutoDrawable(f1);
- f2.setVisible(true);
- f3.setSharedAutoDrawable(f1);
- f3.setVisible(true);
- return true;
- }
- });
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, false));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, false));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, false));
+
+ f1.setVisible(true); // kicks off f1 GLContext .. and hence gears of f2 + f3 completion
Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, true));
@@ -282,12 +285,9 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -295,6 +295,9 @@ public class TestSharedContextVBOES2NEWT2 extends UITestCase {
Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
Assert.assertEquals("Ctx3 has unexpected number of created shares", 2, ctx3Shares.size());
+ Assert.assertEquals("Ctx1 Master Context is different", ctx1, ctx1.getSharedMaster());
+ Assert.assertEquals("Ctx2 Master Context is different", ctx1, ctx2.getSharedMaster());
+ Assert.assertEquals("Ctx3 Master Context is different", ctx1, ctx3.getSharedMaster());
}
Assert.assertTrue("Gears1 is shared", !g1.usesSharedGears());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java
index bfd1a92ce..852b7193e 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java
@@ -53,7 +53,7 @@ import org.junit.runners.MethodSorters;
* Sharing the VBO of 3 GearsES2 instances, each in their own GLWindow.
* <p>
* This is achieved by using the 1st GLWindow as the <i>master</i>
- * and using the build-in blocking mechanism to postpone creation
+ * and synchronizing via GLSharedContextSetter to postpone creation
* of the 2nd and 3rd GLWindow until the 1st GLWindow's GLContext becomes created.
* </p>
* <p>
@@ -112,6 +112,8 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
public void syncedOneAnimator(final boolean destroyCleanOrder, final boolean useMappedBuffers) throws InterruptedException {
final Animator animator = new Animator();
+ animator.start();
+
final GearsES2 g1 = new GearsES2(0);
g1.setUseMappedBuffers(useMappedBuffers);
g1.setValidateBuffers(true);
@@ -125,20 +127,17 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
f1.getY()+0, g2);
f2.setSharedAutoDrawable(f1);
animator.add(f2);
+ f2.setVisible(true); // shall wait until f1 is ready
- final GearsES2 g3 = new GearsES2(0);
- g3.setSharedGears(g1);
- final GLWindow f3 = createGLWindow(f1.getX()+0,
- f1.getY()+height+insets.getTotalHeight(), g3);
- f3.setSharedAutoDrawable(f1);
- animator.add(f3);
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, false));
- f2.setVisible(true); // shall wait until f1 is ready
- f1.setVisible(true); // master ..
- f3.setVisible(true); // shall wait until f1 is ready
- animator.start(); // kicks off GLContext .. and hence gears of f2 + f3 completion
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, false));
- Thread.sleep(1000/60*10); // wait ~10 frames giving a chance to create (blocking until master share is valid)
+ f1.setVisible(true); // kicks off f1 GLContext .. and hence gears of f2 + f3 completion
Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, true));
@@ -150,6 +149,14 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, true));
Assert.assertTrue("Gears2 not initialized", g2.waitForInit(true));
+ final GearsES2 g3 = new GearsES2(0);
+ g3.setSharedGears(g1);
+ final GLWindow f3 = createGLWindow(f1.getX()+0,
+ f1.getY()+height+insets.getTotalHeight(), g3);
+ f3.setSharedAutoDrawable(f1);
+ animator.add(f3);
+ f3.setVisible(true); // shall wait until f1 is ready
+
Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, true));
@@ -162,12 +169,9 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -175,6 +179,9 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
Assert.assertEquals("Ctx3 has unexpected number of created shares", 2, ctx3Shares.size());
+ Assert.assertEquals("Ctx1 Master Context is different", ctx1, ctx1.getSharedMaster());
+ Assert.assertEquals("Ctx2 Master Context is different", ctx1, ctx2.getSharedMaster());
+ Assert.assertEquals("Ctx3 Master Context is different", ctx1, ctx3.getSharedMaster());
}
Assert.assertTrue("Gears1 is shared", !g1.usesSharedGears());
@@ -246,7 +253,6 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
final GLWindow f1 = createGLWindow(0, 0, g1);
a1.add(f1);
a1.start();
- // f1.setVisible(true); // we do this post f2 .. to test pending creation!
final InsetsImmutable insets = f1.getInsets();
@@ -260,19 +266,15 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
a2.start();
f2.setVisible(true);
- f1.setVisible(true); // test pending creation of f2
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, false));
- final Animator a3 = new Animator();
- final GearsES2 g3 = new GearsES2(0);
- g3.setSharedGears(g1);
- final GLWindow f3 = createGLWindow(f1.getX()+0,
- f1.getY()+height+insets.getTotalHeight(), g3);
- f3.setSharedAutoDrawable(f1);
- a3.add(f3);
- a3.start();
- f3.setVisible(true);
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, false));
- Thread.sleep(1000/60*10); // wait ~10 frames giving a chance to create (blocking until master share is valid)
+ f1.setVisible(true); // test pending creation of f2
Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, true));
@@ -284,6 +286,16 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, true));
Assert.assertTrue("Gears2 not initialized", g2.waitForInit(true));
+ final Animator a3 = new Animator();
+ final GearsES2 g3 = new GearsES2(0);
+ g3.setSharedGears(g1);
+ final GLWindow f3 = createGLWindow(f1.getX()+0,
+ f1.getY()+height+insets.getTotalHeight(), g3);
+ f3.setSharedAutoDrawable(f1);
+ a3.add(f3);
+ a3.start();
+ f3.setVisible(true);
+
Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, true));
@@ -296,12 +308,9 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -309,6 +318,9 @@ public class TestSharedContextVBOES2NEWT3 extends UITestCase {
Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
Assert.assertEquals("Ctx3 has unexpected number of created shares", 2, ctx3Shares.size());
+ Assert.assertEquals("Ctx1 Master Context is different", ctx1, ctx1.getSharedMaster());
+ Assert.assertEquals("Ctx2 Master Context is different", ctx1, ctx2.getSharedMaster());
+ Assert.assertEquals("Ctx3 Master Context is different", ctx1, ctx3.getSharedMaster());
}
Assert.assertTrue("Gears1 is shared", !g1.usesSharedGears());
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java
new file mode 100644
index 000000000..804badbc3
--- /dev/null
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java
@@ -0,0 +1,231 @@
+/**
+ * Copyright 2010 JogAmp Community. All rights reserved.
+ *
+ * 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
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * 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.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import com.jogamp.newt.opengl.GLWindow;
+
+import javax.media.nativewindow.util.InsetsImmutable;
+import javax.media.opengl.GLAnimatorControl;
+import javax.media.opengl.GLAutoDrawable;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLContext;
+import javax.media.opengl.GLProfile;
+
+import com.jogamp.opengl.util.Animator;
+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 com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2;
+
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.FixMethodOrder;
+import org.junit.runners.MethodSorters;
+
+/**
+ * Test sharing w/ different shared-master context.
+ * <p>
+ * This is achieved by using the 1st GLWindow as the <i>master</i>
+ * and synchronizing via GLSharedContextSetter to postpone creation
+ * of the 2nd and 3rd GLWindow until the 1st GLWindow's GLContext becomes created.
+ * </p>
+ */
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestSharedContextVBOES2NEWT4 extends UITestCase {
+ static GLProfile glp;
+ static GLCapabilities caps;
+ static int width, height;
+
+ @BeforeClass
+ public static void initClass() {
+ if(GLProfile.isAvailable(GLProfile.GL2ES2)) {
+ glp = GLProfile.get(GLProfile.GL2ES2);
+ Assert.assertNotNull(glp);
+ caps = new GLCapabilities(glp);
+ Assert.assertNotNull(caps);
+ width = 256;
+ height = 256;
+ } else {
+ setTestSupported(false);
+ }
+ }
+
+ protected GLWindow createGLWindow(final int x, final int y, final GearsES2 gears) throws InterruptedException {
+ final GLWindow glWindow = GLWindow.create(caps);
+ Assert.assertNotNull(glWindow);
+ glWindow.setPosition(x, y);
+ glWindow.setTitle("Shared Gears NEWT Test: "+x+"/"+y+" shared true");
+ glWindow.setSize(width, height);
+ glWindow.addGLEventListener(gears);
+
+ return glWindow;
+ }
+
+ @Test
+ public void test01() throws InterruptedException {
+ final Animator animator = new Animator();
+ animator.start();
+
+ final GearsES2 g1 = new GearsES2(0);
+ final GLWindow f1 = createGLWindow(0, 0, g1);
+ animator.add(f1);
+ final InsetsImmutable insets = f1.getInsets();
+
+ final GearsES2 g2 = new GearsES2(0);
+ g2.setSharedGears(g1);
+ final GLWindow f2 = createGLWindow(f1.getX()+width+insets.getTotalWidth(),
+ f1.getY()+0, g2);
+ f2.setSharedAutoDrawable(f1);
+ animator.add(f2);
+ f2.setVisible(true);
+
+ final GearsES2 g3 = new GearsES2(0);
+ g3.setSharedGears(g1);
+ final GLWindow f3 = createGLWindow(f1.getX()+0,
+ f1.getY()+height+insets.getTotalHeight(), g3);
+ f3.setSharedAutoDrawable(f2); // Mixed master!
+ animator.add(f3);
+ final AtomicBoolean gotAnimException = new AtomicBoolean(false);
+ final AtomicBoolean gotOtherException = new AtomicBoolean(false);
+ animator.setUncaughtExceptionHandler(new GLAnimatorControl.UncaughtExceptionHandler() {
+ @Override
+ public void uncaughtException(final GLAnimatorControl _animator, final GLAutoDrawable _drawable, final Throwable _cause) {
+ if( _animator == animator && _drawable == f3 && _cause instanceof RuntimeException ) {
+ System.err.println("Caught expected exception: "+_cause.getMessage());
+ gotAnimException.set(true);
+ } else {
+ System.err.println("Caught unexpected exception: "+_cause.getMessage());
+ _cause.printStackTrace();
+ gotOtherException.set(true);
+ }
+ }
+ });
+ f3.setVisible(true);
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, false));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, false));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, false));
+
+ f1.setVisible(true); // kick off f1 GLContext .. and hence allow f2 + f3 creation
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f1, true));
+ Assert.assertTrue("Gears1 not initialized", g1.waitForInit(true));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f2, true));
+ Assert.assertTrue("Gears2 not initialized", g2.waitForInit(true));
+
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, true));
+ Assert.assertTrue(AWTRobotUtil.waitForContextCreated(f3, true));
+ Assert.assertTrue("Gears3 not initialized", g3.waitForInit(true));
+
+ Assert.assertFalse("Unexpected exception (animator) caught", gotAnimException.get());
+ Assert.assertFalse("Unexpected exception (other) caught", gotOtherException.get());
+
+ final GLContext ctx1 = f1.getContext();
+ final GLContext ctx2 = f2.getContext();
+ final GLContext ctx3 = f3.getContext();
+ {
+ final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
+ final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
+ final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
+
+ Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
+ Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
+ Assert.assertTrue("Ctx3 is not shared", ctx3.isShared());
+ Assert.assertEquals("Ctx1 has unexpected number of created shares", 2, ctx1Shares.size());
+ Assert.assertEquals("Ctx2 has unexpected number of created shares", 2, ctx2Shares.size());
+ Assert.assertEquals("Ctx3 has unexpected number of created shares", 2, ctx3Shares.size());
+ Assert.assertEquals("Ctx1 Master Context is different", ctx1, ctx1.getSharedMaster());
+ Assert.assertEquals("Ctx2 Master Context is different", ctx1, ctx2.getSharedMaster());
+ Assert.assertEquals("Ctx3 Master Context is different", ctx2, ctx3.getSharedMaster()); // Mixed master!
+ }
+
+ Assert.assertTrue("Gears1 is shared", !g1.usesSharedGears());
+ Assert.assertTrue("Gears2 is not shared", g2.usesSharedGears());
+ Assert.assertTrue("Gears3 is not shared", g3.usesSharedGears());
+
+ try {
+ Thread.sleep(duration);
+ } catch(final Exception e) {
+ e.printStackTrace();
+ }
+ animator.stop();
+ Assert.assertEquals(false, animator.isAnimating());
+
+ System.err.println("XXX Destroy in clean order NOW");
+ f3.destroy();
+ f2.destroy();
+ f1.destroy();
+
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f1, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f2, false));
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f2, false));
+ Assert.assertTrue(AWTRobotUtil.waitForVisible(f3, false));
+ Assert.assertTrue(AWTRobotUtil.waitForRealized(f3, false));
+ }
+
+ static long duration = 1000; // ms
+
+ public static void main(final String args[]) {
+ for(int i=0; i<args.length; i++) {
+ if(args[i].equals("-time")) {
+ i++;
+ try {
+ duration = Integer.parseInt(args[i]);
+ } catch (final Exception ex) { ex.printStackTrace(); }
+ }
+ }
+ /**
+ BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
+ System.err.println("Press enter to continue");
+ System.err.println(stdin.readLine()); */
+ org.junit.runner.JUnitCore.main(TestSharedContextVBOES2NEWT4.class.getName());
+ }
+}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java
index 90cb503ce..09f4408f1 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java
@@ -220,12 +220,9 @@ public class TestSharedContextVBOES2SWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.3", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
@@ -314,12 +311,9 @@ public class TestSharedContextVBOES2SWT3 extends UITestCase {
final List<GLContext> ctx1Shares = ctx1.getCreatedShares();
final List<GLContext> ctx2Shares = ctx2.getCreatedShares();
final List<GLContext> ctx3Shares = ctx3.getCreatedShares();
- System.err.println("XXX-C-3.1:");
- MiscUtils.dumpSharedGLContext(ctx1);
- System.err.println("XXX-C-3.2:");
- MiscUtils.dumpSharedGLContext(ctx2);
- System.err.println("XXX-C-3.3:");
- MiscUtils.dumpSharedGLContext(ctx3);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.1", ctx1);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx2);
+ MiscUtils.dumpSharedGLContext("XXX-C-3.2", ctx3);
Assert.assertTrue("Ctx1 is not shared", ctx1.isShared());
Assert.assertTrue("Ctx2 is not shared", ctx2.isShared());
diff --git a/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java b/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java
index e401534bd..7100e1e1a 100644
--- a/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java
+++ b/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java
@@ -214,21 +214,23 @@ public class MiscUtils {
}
}
- public static void dumpSharedGLContext(final GLContext self) {
+ public static void dumpSharedGLContext(final String prefix, final GLContext self) {
int i = 0, j = 0;
- System.err.println("Myself: hash 0x"+Integer.toHexString(self.hashCode())+", \t(isShared "+self.isShared()+", created "+self.isCreated()+")");
+ final GLContext master = self.getSharedMaster();
+ final int masterHash = null != master ? master.hashCode() : 0;
+ System.err.println(prefix+": hash 0x"+Integer.toHexString(self.hashCode())+", \t(isShared "+self.isShared()+", created "+self.isCreated()+", master 0x"+Integer.toHexString(masterHash)+")");
{
final List<GLContext> set = self.getCreatedShares();
for (final Iterator<GLContext> iter = set.iterator(); iter.hasNext(); ) {
final GLContext c = iter.next();
- System.err.println("Ctx #"+(i++)+": hash 0x"+Integer.toHexString(c.hashCode())+", \t(created "+c.isCreated()+")");
+ System.err.println(" Created Ctx #"+(i++)+": hash 0x"+Integer.toHexString(c.hashCode())+", \t(created "+c.isCreated()+")");
}
}
{
final List<GLContext> set = self.getDestroyedShares();
for (final Iterator<GLContext> iter = set.iterator(); iter.hasNext(); ) {
final GLContext c = iter.next();
- System.err.println("Ctx #"+(j++)+": hash 0x"+Integer.toHexString(c.hashCode())+", \t(created "+c.isCreated()+")");
+ System.err.println(" Destroyed Ctx #"+(j++)+": hash 0x"+Integer.toHexString(c.hashCode())+", \t(created "+c.isCreated()+")");
}
}
System.err.println("\t Total created "+i+" + destroyed "+j+" = "+(i+j));