aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/com
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-06-17 18:21:59 +0200
committerSven Gothel <[email protected]>2012-06-17 18:21:59 +0200
commit7f341c7bc0d0f5770191bb58f2c0053c3453bc8a (patch)
treed95287cafc4e4bb92a10ccc69ec11500661fb665 /src/test/com
parentdd84dd3f99648c871d190a97bd813a0d6491849c (diff)
Unit Test: Cleanup TextureSequence Demo Code and Tests, adding AWT Test 'launcher'
Diffstat (limited to 'src/test/com')
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/TextureSequenceDemo01.java (renamed from src/test/com/jogamp/opengl/test/junit/jogl/demos/TestTextureSequence.java)4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java (renamed from src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TexCubeES2.java)69
-rwxr-xr-xsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java6
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01AWT.java112
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01NEWT.java99
5 files changed, 225 insertions, 65 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/TestTextureSequence.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/TextureSequenceDemo01.java
index 6dfb11855..a1d4b4466 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/TestTextureSequence.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/TextureSequenceDemo01.java
@@ -14,14 +14,14 @@ import com.jogamp.opengl.util.texture.TextureData;
import com.jogamp.opengl.util.texture.TextureIO;
import com.jogamp.opengl.util.texture.TextureSequence;
-public class TestTextureSequence implements TextureSequence {
+public class TextureSequenceDemo01 implements TextureSequence {
TextureSequence.TextureFrame frame = null;
int textureUnit = 0;
protected int[] texMinMagFilter = { GL.GL_NEAREST, GL.GL_NEAREST };
protected int[] texWrapST = { GL.GL_CLAMP_TO_EDGE, GL.GL_CLAMP_TO_EDGE };
final boolean useBuildInTexLookup;
- public TestTextureSequence(boolean useBuildInTexLookup) {
+ public TextureSequenceDemo01(boolean useBuildInTexLookup) {
this.useBuildInTexLookup = useBuildInTexLookup;
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TexCubeES2.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java
index e85468bcb..c2fbc65af 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TexCubeES2.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java
@@ -33,7 +33,6 @@ import java.nio.FloatBuffer;
import javax.media.opengl.GL;
import javax.media.opengl.GL2ES2;
import javax.media.opengl.GLAutoDrawable;
-import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLES2;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLException;
@@ -45,13 +44,7 @@ import com.jogamp.newt.Window;
import com.jogamp.newt.event.MouseAdapter;
import com.jogamp.newt.event.MouseEvent;
import com.jogamp.newt.event.MouseListener;
-import com.jogamp.newt.event.WindowAdapter;
-import com.jogamp.newt.event.WindowEvent;
-import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.opengl.JoglVersion;
-import com.jogamp.opengl.test.junit.jogl.demos.TestTextureSequence;
-import com.jogamp.opengl.test.junit.util.MiscUtils;
-import com.jogamp.opengl.util.Animator;
import com.jogamp.opengl.util.GLArrayDataServer;
import com.jogamp.opengl.util.PMVMatrix;
import com.jogamp.opengl.util.glsl.ShaderCode;
@@ -61,8 +54,8 @@ import com.jogamp.opengl.util.texture.Texture;
import com.jogamp.opengl.util.texture.TextureCoords;
import com.jogamp.opengl.util.texture.TextureSequence;
-public class TexCubeES2 implements GLEventListener {
- public TexCubeES2 (TextureSequence texSource, boolean innerCube, float zoom0, float rotx, float roty) {
+public class TextureSequenceCubeES2 implements GLEventListener {
+ public TextureSequenceCubeES2 (TextureSequence texSource, boolean innerCube, float zoom0, float rotx, float roty) {
this.texSeq = texSource;
this.innerCube = innerCube;
this.zoom0 = zoom0;
@@ -153,9 +146,9 @@ public class TexCubeES2 implements GLEventListener {
private void initShader(GL2ES2 gl) {
// Create & Compile the shader objects
- ShaderCode rsVp = ShaderCode.create(gl, GL2ES2.GL_VERTEX_SHADER, TexCubeES2.class,
+ ShaderCode rsVp = ShaderCode.create(gl, GL2ES2.GL_VERTEX_SHADER, TextureSequenceCubeES2.class,
"shader", "shader/bin", shaderBasename, true);
- ShaderCode rsFp = ShaderCode.create(gl, GL2ES2.GL_FRAGMENT_SHADER, TexCubeES2.class,
+ ShaderCode rsFp = ShaderCode.create(gl, GL2ES2.GL_FRAGMENT_SHADER, TextureSequenceCubeES2.class,
"shader", "shader/bin", shaderBasename, true);
// Prelude shader code w/ GLSL profile specifics [ 1. pre-proc, 2. other ]
@@ -274,6 +267,9 @@ public class TexCubeES2 implements GLEventListener {
if (drawable instanceof Window) {
Window window = (Window) drawable;
window.addMouseListener(mouseAction);
+ } else if (GLProfile.isAWTAvailable() && drawable instanceof java.awt.Component) {
+ java.awt.Component comp = (java.awt.Component) drawable;
+ new com.jogamp.newt.event.awt.AWTMouseAdapter(mouseAction).addTo(comp);
}
// Let's show the completed shader state ..
@@ -432,6 +428,7 @@ public class TexCubeES2 implements GLEventListener {
255f/255f, 70f/255f, 60f/255f, 255f/255f, 255f/255f, 70f/255f, 60f/255f, 255f/255f
};
+ /*
private static final float[] s_cubeNormals =
{
0f, 0f, 1f, 0f, 0f, 1f, 0f, 0f, 1f, 0f, 0f, 1f,
@@ -445,7 +442,7 @@ public class TexCubeES2 implements GLEventListener {
1f, 0f, 0f, 1f, 0f, 0f, 1f, 0f, 0f, 1f, 0f, 0f,
-1f, 0f, 0f, -1f, 0f, 0f, -1f, 0f, 0f, -1f, 0f, 0f
- };
+ };*/
private static final byte[] s_cubeIndices =
{
0, 3, 1, 2, 0, 1, /* front */
@@ -455,53 +452,5 @@ public class TexCubeES2 implements GLEventListener {
16, 19, 17, 18, 16, 17, /* right */
23, 20, 21, 20, 22, 21 /* left */
};
-
- public static void main(String[] args) {
- int width = 510;
- int height = 300;
- boolean useBuildInTexLookup = false;
- System.err.println("TexCubeES2.run()");
-
- for(int i=0; i<args.length; i++) {
- 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("-shaderBuildIn")) {
- useBuildInTexLookup = true;
- }
- }
-
- final GLWindow window = GLWindow.create(new GLCapabilities(GLProfile.getGL2ES2()));
- // Size OpenGL to Video Surface
- window.setSize(width, height);
- window.setFullscreen(false);
- window.setSize(width, height);
- final TestTextureSequence texSource = new TestTextureSequence(useBuildInTexLookup);
- window.addGLEventListener(new GLEventListener() {
- @Override
- public void init(GLAutoDrawable drawable) {
- texSource.initGLResources(drawable.getGL());
- }
- @Override
- public void dispose(GLAutoDrawable drawable) { }
- @Override
- public void display(GLAutoDrawable drawable) { }
- @Override
- public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { }
- });
- window.addGLEventListener(new TexCubeES2(texSource, false, -2.3f, 0f, 0f));
- window.setVisible(true);
- final Animator anim = new Animator(window);
- // anim.setUpdateFPSFrames(60, System.err);
- anim.start();
- window.addWindowListener(new WindowAdapter() {
- public void windowDestroyed(WindowEvent e) {
- anim.stop();
- }
- });
- }
}
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 bb0d84193..0b83aacd8 100755
--- 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
@@ -55,7 +55,7 @@ import com.jogamp.newt.event.WindowAdapter;
import com.jogamp.newt.event.WindowEvent;
import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.opengl.JoglVersion;
-import com.jogamp.opengl.test.junit.jogl.demos.es2.TexCubeES2;
+import com.jogamp.opengl.test.junit.jogl.demos.es2.TextureSequenceCubeES2;
import com.jogamp.opengl.test.junit.util.MiscUtils;
import com.jogamp.opengl.util.Animator;
import com.jogamp.opengl.util.av.GLMediaPlayer;
@@ -66,7 +66,7 @@ public class MovieCube implements GLEventListener, GLMediaEventListener {
static boolean waitForKey = false;
final URLConnection stream;
final float zoom0, rotx, roty;
- TexCubeES2 cube=null;
+ TextureSequenceCubeES2 cube=null;
GLMediaPlayer mPlayer=null;
public MovieCube() throws IOException {
@@ -137,7 +137,7 @@ public class MovieCube implements GLEventListener, GLMediaEventListener {
mPlayer = GLMediaPlayerFactory.create();
mPlayer.addEventListener(this);
- cube = new TexCubeES2(mPlayer, false, zoom0, rotx, roty);
+ cube = new TextureSequenceCubeES2(mPlayer, false, zoom0, rotx, roty);
if(waitForKey) {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01AWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01AWT.java
new file mode 100644
index 000000000..36dad45e6
--- /dev/null
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01AWT.java
@@ -0,0 +1,112 @@
+package com.jogamp.opengl.test.junit.jogl.util.texture;
+
+import java.awt.Frame;
+
+import javax.media.opengl.GLAutoDrawable;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLEventListener;
+import javax.media.opengl.GLProfile;
+import javax.media.opengl.awt.GLCanvas;
+
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.jogamp.opengl.test.junit.jogl.demos.TextureSequenceDemo01;
+import com.jogamp.opengl.test.junit.jogl.demos.es2.TextureSequenceCubeES2;
+import com.jogamp.opengl.test.junit.util.MiscUtils;
+import com.jogamp.opengl.test.junit.util.QuitAdapter;
+import com.jogamp.opengl.test.junit.util.UITestCase;
+import com.jogamp.opengl.util.Animator;
+
+public class TestTextureSequence01AWT extends UITestCase {
+ static boolean showFPS = false;
+ static int width = 510;
+ static int height = 300;
+ static boolean useBuildInTexLookup = false;
+ static long duration = 500; // ms
+ static GLProfile glp;
+ static GLCapabilities caps;
+
+ @BeforeClass
+ public static void initClass() {
+ glp = GLProfile.getGL2ES2();
+ Assert.assertNotNull(glp);
+ caps = new GLCapabilities(glp);
+ Assert.assertNotNull(caps);
+ }
+
+ void testImpl() throws InterruptedException {
+ final GLCanvas glc = new GLCanvas(caps);
+ final Frame frame = new Frame("TestTextureSequence01AWT");
+ Assert.assertNotNull(frame);
+ frame.add(glc);
+ frame.setSize(width, height);
+
+ final TextureSequenceDemo01 texSource = new TextureSequenceDemo01(useBuildInTexLookup);
+ glc.addGLEventListener(new GLEventListener() {
+ @Override
+ public void init(GLAutoDrawable drawable) {
+ texSource.initGLResources(drawable.getGL());
+ }
+ @Override
+ public void dispose(GLAutoDrawable drawable) { }
+ @Override
+ public void display(GLAutoDrawable drawable) { }
+ @Override
+ public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { }
+ });
+ glc.addGLEventListener(new TextureSequenceCubeES2(texSource, false, -2.3f, 0f, 0f));
+ final Animator animator = new Animator(glc);
+ animator.setUpdateFPSFrames(60, showFPS ? System.err : null);
+ QuitAdapter quitAdapter = new QuitAdapter();
+ new com.jogamp.newt.event.awt.AWTKeyAdapter(quitAdapter).addTo(glc);
+ new com.jogamp.newt.event.awt.AWTWindowAdapter(quitAdapter).addTo(glc);
+ frame.setVisible(true);
+ animator.start();
+
+ while(!quitAdapter.shouldQuit() && animator.isAnimating() && animator.getTotalFPSDuration()<duration) {
+ Thread.sleep(100);
+ }
+
+ animator.stop();
+ Assert.assertFalse(animator.isAnimating());
+ Assert.assertFalse(animator.isStarted());
+ try {
+ javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ frame.setVisible(false);
+ frame.remove(glc);
+ frame.dispose();
+ }});
+ } catch( Throwable throwable ) {
+ throwable.printStackTrace();
+ Assume.assumeNoException( throwable );
+ }
+ }
+
+ @Test
+ public void test1() throws InterruptedException {
+ testImpl();
+ }
+
+ public static void main(String[] args) {
+ 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("-shaderBuildIn")) {
+ useBuildInTexLookup = true;
+ }
+ }
+ org.junit.runner.JUnitCore.main(TestTextureSequence01AWT.class.getName());
+ }
+
+}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01NEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01NEWT.java
new file mode 100644
index 000000000..89f8863d7
--- /dev/null
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestTextureSequence01NEWT.java
@@ -0,0 +1,99 @@
+package com.jogamp.opengl.test.junit.jogl.util.texture;
+
+import javax.media.opengl.GLAutoDrawable;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLEventListener;
+import javax.media.opengl.GLProfile;
+
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.jogamp.newt.opengl.GLWindow;
+import com.jogamp.opengl.test.junit.jogl.demos.TextureSequenceDemo01;
+import com.jogamp.opengl.test.junit.jogl.demos.es2.TextureSequenceCubeES2;
+import com.jogamp.opengl.test.junit.util.MiscUtils;
+import com.jogamp.opengl.test.junit.util.QuitAdapter;
+import com.jogamp.opengl.test.junit.util.UITestCase;
+import com.jogamp.opengl.util.Animator;
+
+public class TestTextureSequence01NEWT extends UITestCase {
+ static boolean showFPS = false;
+ static int width = 510;
+ static int height = 300;
+ static boolean useBuildInTexLookup = false;
+ static long duration = 500; // ms
+ static GLProfile glp;
+ static GLCapabilities caps;
+
+ @BeforeClass
+ public static void initClass() {
+ glp = GLProfile.getGL2ES2();
+ Assert.assertNotNull(glp);
+ caps = new GLCapabilities(glp);
+ Assert.assertNotNull(caps);
+ }
+
+ void testImpl() throws InterruptedException {
+ final GLWindow window = GLWindow.create(caps);
+ window.setTitle("TestTextureSequence01NEWT");
+ // Size OpenGL to Video Surface
+ window.setSize(width, height);
+ window.setFullscreen(false);
+ window.setSize(width, height);
+ final TextureSequenceDemo01 texSource = new TextureSequenceDemo01(useBuildInTexLookup);
+ window.addGLEventListener(new GLEventListener() {
+ @Override
+ public void init(GLAutoDrawable drawable) {
+ texSource.initGLResources(drawable.getGL());
+ }
+ @Override
+ public void dispose(GLAutoDrawable drawable) { }
+ @Override
+ public void display(GLAutoDrawable drawable) { }
+ @Override
+ public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { }
+ });
+ window.addGLEventListener(new TextureSequenceCubeES2(texSource, false, -2.3f, 0f, 0f));
+ final Animator animator = new Animator(window);
+ animator.setUpdateFPSFrames(60, showFPS ? System.err : null);
+ QuitAdapter quitAdapter = new QuitAdapter();
+ window.addKeyListener(quitAdapter);
+ window.addWindowListener(quitAdapter);
+ animator.start();
+ window.setVisible(true);
+
+ while(!quitAdapter.shouldQuit() && animator.isAnimating() && animator.getTotalFPSDuration()<duration) {
+ Thread.sleep(100);
+ }
+
+ animator.stop();
+ Assert.assertFalse(animator.isAnimating());
+ Assert.assertFalse(animator.isStarted());
+ window.destroy();
+ }
+
+ @Test
+ public void test1() throws InterruptedException {
+ testImpl();
+ }
+
+ public static void main(String[] args) {
+ 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("-shaderBuildIn")) {
+ useBuildInTexLookup = true;
+ }
+ }
+ org.junit.runner.JUnitCore.main(TestTextureSequence01NEWT.class.getName());
+ }
+
+}