From 875a36a142b086e4f1c311440db008f816258de5 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 31 Oct 2012 21:32:28 +0100 Subject: MacOSXCGLContext: Fix ShaderCode instantiation .. (duh!) ; Tested via reparenting TestParentingFocusTraversal01AWT --- .../jogamp/opengl/macosx/cgl/MacOSXCGLContext.java | 31 +++++++--------------- .../parenting/NewtAWTReparentingKeyAdapter.java | 4 ++- .../TestParentingFocusTraversal01AWT.java | 5 +++- 3 files changed, 16 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java b/src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java index 518d97067..360b7457b 100644 --- a/src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java +++ b/src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java @@ -138,32 +138,19 @@ public abstract class MacOSXCGLContext extends GLContextImpl } } - /** Static instances of GL3 core shader code, initialized lazy when required - never destroyed. */ - private static Object gl3ShaderLock = new Object(); - private static volatile boolean gl3VertexShaderInitialized = false; - private static ShaderCode gl3VertexShader = null; - private static ShaderCode gl3FragmentShader = null; + private static final String shaderBasename = "texture01_xxx"; private static ShaderProgram createCALayerShader(GL3 gl) { - // Create vertex & fragment shader code objects - if( !gl3VertexShaderInitialized ) { // volatile OK - synchronized( gl3ShaderLock ) { - if( !gl3VertexShaderInitialized ) { - final String shaderBasename = "texture01_xxx"; - gl3VertexShader = ShaderCode.create(gl, GL2ES2.GL_VERTEX_SHADER, MacOSXCGLContext.class, - "../../shader", "../../shader/bin", shaderBasename, true); - gl3FragmentShader = ShaderCode.create(gl, GL2ES2.GL_FRAGMENT_SHADER, MacOSXCGLContext.class, - "../../shader", "../../shader/bin", shaderBasename, true); - gl3VertexShader.defaultShaderCustomization(gl, true, ShaderCode.es2_default_precision_vp); - gl3FragmentShader.defaultShaderCustomization(gl, true, ShaderCode.es2_default_precision_fp); - gl3VertexShaderInitialized = true; - } - } - } // Create & Link the shader program final ShaderProgram sp = new ShaderProgram(); - sp.add(gl3VertexShader); - sp.add(gl3FragmentShader); + final ShaderCode vp = ShaderCode.create(gl, GL2ES2.GL_VERTEX_SHADER, MacOSXCGLContext.class, + "../../shader", "../../shader/bin", shaderBasename, true); + final ShaderCode fp = ShaderCode.create(gl, GL2ES2.GL_FRAGMENT_SHADER, MacOSXCGLContext.class, + "../../shader", "../../shader/bin", shaderBasename, true); + vp.defaultShaderCustomization(gl, true, ShaderCode.es2_default_precision_vp); + fp.defaultShaderCustomization(gl, true, ShaderCode.es2_default_precision_fp); + sp.add(vp); + sp.add(fp); if(!sp.link(gl, System.err)) { throw new GLException("Couldn't link program: "+sp); } diff --git a/src/test/com/jogamp/opengl/test/junit/newt/parenting/NewtAWTReparentingKeyAdapter.java b/src/test/com/jogamp/opengl/test/junit/newt/parenting/NewtAWTReparentingKeyAdapter.java index f7881615d..15393e8ea 100644 --- a/src/test/com/jogamp/opengl/test/junit/newt/parenting/NewtAWTReparentingKeyAdapter.java +++ b/src/test/com/jogamp/opengl/test/junit/newt/parenting/NewtAWTReparentingKeyAdapter.java @@ -48,7 +48,9 @@ public class NewtAWTReparentingKeyAdapter extends KeyAdapter { } public void keyTyped(KeyEvent e) { - if(e.getKeyChar()=='d') { + if(e.getKeyChar()=='i') { + System.err.println(glWindow); + } else if(e.getKeyChar()=='d') { glWindow.setUndecorated(!glWindow.isUndecorated()); } else if(e.getKeyChar()=='f') { glWindow.setFullscreen(!glWindow.isFullscreen()); diff --git a/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParentingFocusTraversal01AWT.java b/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParentingFocusTraversal01AWT.java index f39b5df3b..d6f1f817a 100644 --- a/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParentingFocusTraversal01AWT.java +++ b/src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParentingFocusTraversal01AWT.java @@ -68,12 +68,13 @@ public class TestParentingFocusTraversal01AWT extends UITestCase { static long durationPerTest = numFocus * 200; static GLCapabilities glCaps; static boolean manual = false; + static boolean forceGL3 = false; @BeforeClass public static void initClass() { glSize = new Dimension(200,200); fSize = new Dimension(300,300); - glCaps = new GLCapabilities(null); + glCaps = new GLCapabilities( forceGL3 ? GLProfile.get(GLProfile.GL3) : null ); } @Test @@ -314,6 +315,8 @@ public class TestParentingFocusTraversal01AWT extends UITestCase { durationPerTest = atoi(args[++i]); } else if(args[i].equals("-manual")) { manual = true; + } else if(args[i].equals("-gl3")) { + forceGL3 = true; } } String tstname = TestParentingFocusTraversal01AWT.class.getName(); -- cgit v1.2.3