From 289ba90b9ce118ba987b47ee70870cca77287cc0 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 30 Jul 2014 22:05:52 +0200 Subject: Refine test ff5dba28610b4f680c9320e9e52669ed54d4de43: Perform context switch on GL capable thread if required. Add API doc note about this requirement. --- .../junit/jogl/acore/glels/GLContextDrawableSwitchBase0.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/test/com/jogamp') diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase0.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase0.java index 49d16a80a..239cab26d 100644 --- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase0.java +++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase0.java @@ -34,6 +34,7 @@ import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCapabilities; import javax.media.opengl.GLCapabilitiesImmutable; import javax.media.opengl.GLProfile; +import javax.media.opengl.Threading; import com.jogamp.opengl.util.Animator; import com.jogamp.opengl.util.GLDrawableUtil; @@ -226,8 +227,17 @@ public abstract class GLContextDrawableSwitchBase0 extends UITestCase { s++; System.err.println(s+" - switch - START "+ ( t1 - t0 )); + final Runnable switchAction = new Runnable() { + public void run() { + GLDrawableUtil.swapGLContextAndAllGLEventListener(gladSource, gladDest); + } }; + // switch context _and_ the demo synchronously - GLDrawableUtil.swapGLContextAndAllGLEventListener(gladSource, gladDest); + if( gladSource.isThreadGLCapable() && gladDest.isThreadGLCapable() ) { + switchAction.run(); + } else { + Threading.invokeOnOpenGLThread(true, switchAction); + } snapshotGLEventListener.setMakeSnapshot(); System.err.println(s+" - switch - END "+ ( t1 - t0 )); -- cgit v1.2.3