From 1ac5a3f0643a761d2d9e217883da73ad993a91b9 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Tue, 30 Aug 2011 15:41:00 +0200 Subject: ShaderState Usage/Test: Add setShaderState(GL) for pre-use attachment to the GL context ; GLArrayDataClient-GLSL: Check if ShaderState is attached. ShaderState Usage/Test: Add setShaderState(GL) for pre-use attachment to the GL context - test cases utilize ShaderState before useProgram() was invoked, hence we need an API entry to attach the ShaderState explictly GLArrayDataClient-GLSL: Check if ShaderState is attached. - catch error case of non bound ShaderState to GL context --- src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java') diff --git a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java index ee9a21095..99500adfb 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java +++ b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java @@ -158,7 +158,15 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData // init/generate VBO name if not done yet init_vbo(gl); } - final Object ext = usesGLSL ? ShaderState.getShaderState(gl) : null ; + final Object ext; + if(usesGLSL) { + ext = ShaderState.getShaderState(gl); + if(null == ext) { + throw new GLException("A ShaderState must be bound to the GL context, use 'ShaderState.setShaderState(gl)'"); + } + } else { + ext = null; + } if(enable) { glArrayHandler.syncData(gl, true, ext); glArrayHandler.enableState(gl, true, ext); -- cgit v1.2.3