diff options
author | Sven Gothel <[email protected]> | 2011-08-30 03:41:38 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2011-08-30 03:41:38 +0200 |
commit | 7f2da7bb878813817efab0eb01bbf274065ef6c6 (patch) | |
tree | 6c4df36439747e239c84f88e676c4a6145738c54 /src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java | |
parent | b8b25bb01b826e1216551c8f3d192bcec670e265 (diff) |
GLSL DataArray/Handler: Remove ShaderState state and pass it through: ShaderState.getShaderState(gl)
This removes the dependency of a GLSL GLDataArray object to a specific ShaderState
and enables sharing of this VBO data, i.e. via a shared context.
Test: TestSharedContextVBOES2NEWT
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java')
-rw-r--r-- | src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java index a2a012e08..36abd9d4d 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java +++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java @@ -49,7 +49,8 @@ import com.jogamp.opengl.util.GLArrayDataEditable; public class ShaderState { public static final boolean DEBUG = Debug.isPropertyDefined("jogl.debug.GLSLState", true, AccessController.getContext()); - + private static final String currentStateKey = "jogamp.opengl.glsl.ShaderState" ; + public ShaderState() { } @@ -78,7 +79,7 @@ public class ShaderState { * @see com.jogamp.opengl.util.glsl.ShaderState#getCurrentShaderState() */ public static synchronized ShaderState getShaderState(GL gl) { - return (ShaderState) gl.getContext().getAttachedObject(ShaderState.class.getName()); + return (ShaderState) gl.getContext().getAttachedObject(currentStateKey); } /** @@ -141,7 +142,7 @@ public class ShaderState { if(null==shaderProgram) { throw new GLException("No program is attached"); } if(on) { // update the current ShaderState to the TLS .. - gl.getContext().attachObject(ShaderState.class.getName(), this); + gl.getContext().attachObject(currentStateKey, this); if(shaderProgram.linked()) { shaderProgram.useProgram(gl, true); if(resetAllShaderData) { |