com.metsci.glimpse.gl.shader
Class Shader

java.lang.Object
  extended by com.metsci.glimpse.gl.shader.Shader
Direct Known Subclasses:
SampledColorScaleShader, SimplePointShader, SimpleShader, TaggedColorScaleShader

public abstract class Shader
extends java.lang.Object

A wrapper for an OpenGL geometry, vertex, or fragment shader. Handles compiling the shader inside the OpenGL context, automatically recognizing uniform variables and providing handles via ShaderArg objects. Shaders may be combined via a Pipeline into a rendering pipeline which may be used by a GlimpsePainter which desires shaders to be active during its rendering.

Author:
osborn

Constructor Summary
Shader(java.lang.String name, ShaderType type, boolean noParse, ShaderSource... source)
           
Shader(java.lang.String name, ShaderType type, boolean noParse, java.lang.String... source)
           
Shader(java.lang.String name, ShaderType type, ShaderSource... source)
           
Shader(java.lang.String name, ShaderType type, java.lang.String... source)
           
 
Method Summary
 void dispose(javax.media.opengl.GLContext context)
           
 java.lang.String getName()
           
static ShaderSource[] getSource(java.lang.String... shaderFile)
           
 ShaderType getType()
           
abstract  void postDisplay(javax.media.opengl.GL gl)
          Called right after rendering is complete, just after reverting to the fixed pipeline functionality.
abstract  void preDisplay(javax.media.opengl.GL gl)
          Called right after this shader is made current as part of the pipeline.
abstract  boolean preLink(javax.media.opengl.GL gl, int glProgramHandle)
          Called right after the program has been compiled, but before it has been linked.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Shader

public Shader(java.lang.String name,
              ShaderType type,
              java.lang.String... source)

Shader

public Shader(java.lang.String name,
              ShaderType type,
              ShaderSource... source)

Shader

public Shader(java.lang.String name,
              ShaderType type,
              boolean noParse,
              java.lang.String... source)

Shader

public Shader(java.lang.String name,
              ShaderType type,
              boolean noParse,
              ShaderSource... source)
Method Detail

getSource

public static ShaderSource[] getSource(java.lang.String... shaderFile)

getName

public java.lang.String getName()

getType

public ShaderType getType()

preLink

public abstract boolean preLink(javax.media.opengl.GL gl,
                                int glProgramHandle)
Called right after the program has been compiled, but before it has been linked.

Returns:
false if any problems specific to this shader are found, true otherwise

preDisplay

public abstract void preDisplay(javax.media.opengl.GL gl)
Called right after this shader is made current as part of the pipeline. Use this method to update uniform variables for this shader.


postDisplay

public abstract void postDisplay(javax.media.opengl.GL gl)
Called right after rendering is complete, just after reverting to the fixed pipeline functionality. Use this method for any necessary cleanup specific to this shader.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

dispose

public void dispose(javax.media.opengl.GLContext context)


Copyright © 2012 Metron, Inc.. All Rights Reserved.