diff options
Diffstat (limited to 'src/test/com/jogamp/opengl')
-rw-r--r-- | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLCapabilities01NEWT.java | 65 |
1 files changed, 49 insertions, 16 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLCapabilities01NEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLCapabilities01NEWT.java index 0782e8915..cd1107e25 100644 --- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLCapabilities01NEWT.java +++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLCapabilities01NEWT.java @@ -39,6 +39,8 @@ import javax.media.opengl.GLDrawableFactory; import javax.media.opengl.GLEventListener; import javax.media.opengl.GLProfile; +import jogamp.opengl.GLGraphicsConfigurationUtil; + import org.junit.Assert; import org.junit.Test; @@ -61,9 +63,19 @@ public class TestGLCapabilities01NEWT extends UITestCase { return true; } - void doTest(GLCapabilities reqGLCaps, GLEventListener demo) throws InterruptedException { + void doTest(GLCapabilitiesImmutable reqGLCaps, GLEventListener demo) throws InterruptedException { System.out.println("Requested GL Caps: "+reqGLCaps); - + + final GLCapabilitiesImmutable expGLCaps; + if( GLGraphicsConfigurationUtil.isGLCapabilitiesOffscreenAutoSelection(reqGLCaps) ) { + final GLDrawableFactory f = GLDrawableFactory.getFactory(reqGLCaps.getGLProfile()); + final boolean fboAvailable = true ; // f.canCreateFBO(null, reqGLCaps.getGLProfile()); + final boolean pbufferAvailable = f.canCreateGLPbuffer(null); + expGLCaps = GLGraphicsConfigurationUtil.fixGLCapabilities(reqGLCaps, fboAvailable, pbufferAvailable); + } else { + expGLCaps = reqGLCaps; + } + System.out.println("Expected GL Caps: "+expGLCaps); // // Create native windowing resources .. X11/Win/OSX // @@ -108,13 +120,13 @@ public class TestGLCapabilities01NEWT extends UITestCase { Assert.assertTrue(chosenGLCaps.getBlueBits()>5); Assert.assertTrue(chosenGLCaps.getRedBits()>5); Assert.assertTrue(chosenGLCaps.getDepthBits()>4); - Assert.assertEquals(reqGLCaps.isOnscreen(), chosenGLCaps.isOnscreen()); - Assert.assertEquals(reqGLCaps.isFBO(), chosenGLCaps.isFBO()); - Assert.assertEquals(reqGLCaps.isPBuffer(), chosenGLCaps.isPBuffer()); - Assert.assertEquals(reqGLCaps.isBitmap(), chosenGLCaps.isBitmap()); + Assert.assertEquals(expGLCaps.isOnscreen(), chosenGLCaps.isOnscreen()); + Assert.assertEquals(expGLCaps.isFBO(), chosenGLCaps.isFBO()); + Assert.assertEquals(expGLCaps.isPBuffer(), chosenGLCaps.isPBuffer()); + Assert.assertEquals(expGLCaps.isBitmap(), chosenGLCaps.isBitmap()); if(chosenGLCaps.isOnscreen() || chosenGLCaps.isFBO()) { // dbl buffer may be disabled w/ offscreen pbuffer and bitmap - Assert.assertEquals(reqGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered()); + Assert.assertEquals(expGLCaps.getDoubleBuffered(), chosenGLCaps.getDoubleBuffered()); } GLContext context = drawable.createContext(null); @@ -142,33 +154,33 @@ public class TestGLCapabilities01NEWT extends UITestCase { } } - //@Test - public void testGL2OffScreenAutoDblBuf() throws InterruptedException { + @Test + public void testGL2OnScreenDblBuf() throws InterruptedException { if(!checkProfile(GLProfile.GL2)) { return; } final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GL2)); - reqGLCaps.setOnscreen(false); doTest(reqGLCaps, new GearsES2(1)); } - - // @Test - public void testGL2OffScreenFBODblBuf() throws InterruptedException { + + @Test + public void testGL2OffScreenAutoDblBuf() throws InterruptedException { if(!checkProfile(GLProfile.GL2)) { return; } final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GL2)); reqGLCaps.setOnscreen(false); - reqGLCaps.setFBO(true); doTest(reqGLCaps, new GearsES2(1)); } - + @Test - public void testGL2OnScreenDblBuf() throws InterruptedException { + public void testGL2OffScreenFBODblBuf() throws InterruptedException { if(!checkProfile(GLProfile.GL2)) { return; } final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GL2)); + reqGLCaps.setOnscreen(false); + reqGLCaps.setFBO(true); doTest(reqGLCaps, new GearsES2(1)); } @@ -204,6 +216,27 @@ public class TestGLCapabilities01NEWT extends UITestCase { } @Test + public void testES2OffScreenAutoDblBuf() throws InterruptedException { + if(!checkProfile(GLProfile.GLES2)) { + return; + } + final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2)); + reqGLCaps.setOnscreen(false); + doTest(reqGLCaps, new GearsES2(1)); + } + + @Test + public void testES2OffScreenFBODblBuf() throws InterruptedException { + if(!checkProfile(GLProfile.GLES2)) { + return; + } + final GLCapabilities reqGLCaps = new GLCapabilities(GLProfile.get(GLProfile.GLES2)); + reqGLCaps.setOnscreen(false); + reqGLCaps.setFBO(true); + doTest(reqGLCaps, new GearsES2(1)); + } + + @Test public void testES2OffScreenPbufferDblBuf() throws InterruptedException { if(!checkProfile(GLProfile.GLES2)) { return; |