diff options
author | Michael Bien <[email protected]> | 2010-06-08 00:32:29 +0200 |
---|---|---|
committer | Michael Bien <[email protected]> | 2010-06-08 01:13:32 +0200 |
commit | 9dedeb00e80c4b8e5323abc8ebd226893a791e72 (patch) | |
tree | 2f39a3f44c2918df836132f4f05d7c3a8e07d3a6 | |
parent | 16111d6280a46a04e71e0904944cb983ae34c3ff (diff) |
forked TestAWT01GLn into TestSwingAWT01GLn.
Revert "swing on edt only, awt off edt. cleaned up the test a bit."
This reverts commit dcc946e925ec73740e2985e5febf5fbb732ad1d9.
Revert "added JFrame and Window runs to testAWT01GLn testcase + EDT fixes."
This reverts commit 5cde948df47ecf435eda95b846a1b5c7afd6f5f9.
-rwxr-xr-x | src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java | 112 | ||||
-rwxr-xr-x | src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java | 163 |
2 files changed, 205 insertions, 70 deletions
diff --git a/src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java b/src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java index 291fa6ad9..1652acd82 100755 --- a/src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java +++ b/src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java @@ -32,7 +32,6 @@ package com.jogamp.test.junit.jogl.awt; -import java.lang.reflect.InvocationTargetException; import javax.media.opengl.GLProfile; import javax.media.opengl.GLCapabilities; import javax.media.opengl.awt.GLCanvas; @@ -40,21 +39,17 @@ import com.jogamp.opengl.util.Animator; import com.jogamp.test.junit.jogl.demos.gl2.gears.Gears; import java.awt.Frame; -import java.awt.Window; -import javax.swing.JFrame; +import org.junit.Assert; +import org.junit.Assume; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.After; import org.junit.Test; -import static org.junit.Assume.*; -import static org.junit.Assert.*; -import static javax.swing.SwingUtilities.*; - public class TestAWT01GLn { - - private Window[] windows; - + Frame frame=null; + GLCanvas glCanvas=null; @BeforeClass public static void startup() { @@ -63,70 +58,47 @@ public class TestAWT01GLn { @Before public void init() { - windows = new Window[]{ - new Window(null), - new Frame("Frame GL test"), - new JFrame("JFrame GL test") - }; + frame = new Frame("Texture Test"); + Assert.assertNotNull(frame); } - protected void runTestGL(final GLCapabilities caps) throws InterruptedException, InvocationTargetException { - - for (final Window window : windows) { - - System.out.println("testing with "+window.getClass().getName()); - - // final array as mutable container hack - final GLCanvas[] glCanvas = new GLCanvas[1]; - - Runnable test = new Runnable() { - public void run() { - glCanvas[0] = new GLCanvas(caps); - glCanvas[0].addGLEventListener(new Gears()); - window.add(glCanvas[0]); - window.setSize(512, 512); - glCanvas[0].display(); - window.setVisible(true); - } - }; - - Runnable cleanup = new Runnable() { - public void run() { - System.out.println("cleaning up..."); - window.setVisible(false); - try { - window.removeAll(); - } catch (Throwable t) { - assumeNoException(t); - t.printStackTrace(); - } - window.dispose(); - } - - }; - - //swing on EDT.. - if(window instanceof JFrame) { - invokeAndWait(test); - }else{ - test.run(); - } - - Animator animator = new Animator(glCanvas[0]); - animator.start(); - Thread.sleep(500); - animator.stop(); - - if(window instanceof JFrame) { - invokeAndWait(cleanup); - }else{ - cleanup.run(); - } + @After + public void release() { + Assert.assertNotNull(frame); + Assert.assertNotNull(glCanvas); + frame.setVisible(false); + try { + frame.remove(glCanvas); + } catch (Throwable t) { + t.printStackTrace(); + Assume.assumeNoException(t); } + frame.dispose(); + frame=null; + glCanvas=null; + } + + protected void runTestGL(GLCapabilities caps) throws InterruptedException { + glCanvas = new GLCanvas(caps); + Assert.assertNotNull(glCanvas); + frame.add(glCanvas); + frame.setSize(512, 512); + + glCanvas.addGLEventListener(new Gears()); + + glCanvas.display(); // one in process display + + Animator animator = new Animator(glCanvas); + frame.setVisible(true); + animator.start(); + + Thread.sleep(500); // 500 ms + + animator.stop(); } @Test - public void test01GLDefault() throws InterruptedException, InvocationTargetException { + public void test01GLDefault() throws InterruptedException { GLProfile glp = GLProfile.getDefault(); System.out.println("GLProfile Default: "+glp); GLCapabilities caps = new GLCapabilities(glp); @@ -134,7 +106,7 @@ public class TestAWT01GLn { } @Test - public void test03GLMaxFixed() throws InterruptedException, InvocationTargetException { + public void test03GLMaxFixed() throws InterruptedException { GLProfile maxFixed = GLProfile.getMaxFixedFunc(); System.out.println("GLProfile MaxFixed: "+maxFixed); GLCapabilities caps = new GLCapabilities(maxFixed); @@ -147,7 +119,7 @@ public class TestAWT01GLn { if(maxFixed.equals(GLProfile.GL3bc) || maxFixed.equals(GLProfile.GL4bc)) { t.printStackTrace(); - assumeNoException(t); + Assume.assumeNoException(t); } // else .. serious unexpected exception } diff --git a/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java b/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java new file mode 100755 index 000000000..ed8a5dd0f --- /dev/null +++ b/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2010 Michael Bien. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * - Redistribution of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistribution 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. + * + * Neither the name Michael Bien or the names of + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. ALL + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, + * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN + * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR + * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR + * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR + * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR + * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE + * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, + * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF + * MICHAEL BIEN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +package com.jogamp.test.junit.jogl.awt; + +import java.lang.reflect.InvocationTargetException; +import javax.media.opengl.GLProfile; +import javax.media.opengl.GLCapabilities; +import javax.media.opengl.awt.GLCanvas; +import com.jogamp.opengl.util.Animator; + +import com.jogamp.test.junit.jogl.demos.gl2.gears.Gears; +import java.awt.Frame; +import java.awt.Window; +import javax.swing.JFrame; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +import static org.junit.Assume.*; +import static org.junit.Assert.*; +import static javax.swing.SwingUtilities.*; + +/** + * Tests context creation + display on various kinds of Window implementations. + * @author Michael Bien + */ +public class TestSwingAWT01GLn { + + private Window[] windows; + + + @BeforeClass + public static void startup() { + System.out.println("GLProfile <static> "+GLProfile.glAvailabilityToString()); + } + + @Before + public void init() { + windows = new Window[]{ + new Window(null), + new Frame("Frame GL test"), + new JFrame("JFrame GL test") + }; + } + + protected void runTestGL(final GLCapabilities caps) throws InterruptedException, InvocationTargetException { + + for (final Window window : windows) { + + System.out.println("testing with "+window.getClass().getName()); + + // final array as mutable container hack + final GLCanvas[] glCanvas = new GLCanvas[1]; + + Runnable test = new Runnable() { + public void run() { + glCanvas[0] = new GLCanvas(caps); + glCanvas[0].addGLEventListener(new Gears()); + window.add(glCanvas[0]); + window.setSize(512, 512); + glCanvas[0].display(); + window.setVisible(true); + } + }; + + Runnable cleanup = new Runnable() { + public void run() { + System.out.println("cleaning up..."); + window.setVisible(false); + try { + window.removeAll(); + } catch (Throwable t) { + assumeNoException(t); + t.printStackTrace(); + } + window.dispose(); + } + + }; + + //swing on EDT.. + if(window instanceof JFrame) { + invokeAndWait(test); + }else{ + test.run(); + } + + Animator animator = new Animator(glCanvas[0]); + animator.start(); + Thread.sleep(500); + animator.stop(); + + if(window instanceof JFrame) { + invokeAndWait(cleanup); + }else{ + cleanup.run(); + } + } + } + + @Test + public void test01GLDefault() throws InterruptedException, InvocationTargetException { + GLProfile glp = GLProfile.getDefault(); + System.out.println("GLProfile Default: "+glp); + GLCapabilities caps = new GLCapabilities(glp); + runTestGL(caps); + } + + @Test + public void test03GLMaxFixed() throws InterruptedException, InvocationTargetException { + GLProfile maxFixed = GLProfile.getMaxFixedFunc(); + System.out.println("GLProfile MaxFixed: "+maxFixed); + GLCapabilities caps = new GLCapabilities(maxFixed); + try { + runTestGL(caps); + } catch (Throwable t) { + // FIXME: + // Stop test and ignore if GL3bc and GL4bc + // currently this won't work on ATI! + if(maxFixed.getName().equals(GLProfile.GL3bc) || + maxFixed.getName().equals(GLProfile.GL4bc)) { + t.printStackTrace(); + assumeNoException(t); + } + // else .. serious unexpected exception + } + } + + public static void main(String args[]) { + org.junit.runner.JUnitCore.main(TestSwingAWT01GLn.class.getName()); + } +} |