cGLSLShader Class Reference

This class is a GLSL-specific implementation of cGenericShader. More...

#include <CShaders.h>

Inheritance diagram for cGLSLShader:

cGenericShader cGenericObject List of all members.

Public Member Functions

 cGLSLShader ()
 Constructor of cGLSLShader.
 ~cGLSLShader ()
 Destructor of cGLSLShader.
GLhandleARB getProgramHandle () const
 Returns the program handle (for setting uniform variables).

Protected Member Functions

virtual void uninitializeShaders ()
 Called when we need to clean up shaders; e.g. when new shaders are being loaded.
virtual int initializeFragmentShader ()
 Called to create a fragment shader from m_fragmentShaderString.
virtual int uninitializeFragmentShader ()
 Called to clean up a fragment shader.
virtual int initializeVertexShader ()
 Called to create a vertex shader from m_vertexShaderString.
virtual int uninitializeVertexShader ()
 Called to clean up a vertex shader.
int initializeProgram ()
 Creates the shader program object.
void uninitializeProgram ()
 Cleans up the shader program object (detaches the shaders and deletes the object).
virtual void enableShaders ()
virtual void disableShaders ()

Protected Attributes

bool m_programInitialized
 Has my program object been initialized?
GLhandleARB m_hFShader
 Handles for the fragment and vertex shaders and the program object.

Detailed Description

This class is a GLSL-specific implementation of cGenericShader.


Constructor & Destructor Documentation

cGLSLShader::cGLSLShader (  ) 

Constructor of cGLSLShader.

Constructor of cGLSLShader

cGLSLShader::~cGLSLShader (  ) 

Destructor of cGLSLShader.

Destructor of cGLSLShader


Member Function Documentation

void cGLSLShader::uninitializeShaders (  )  [protected, virtual]

Called when we need to clean up shaders; e.g. when new shaders are being loaded.

Uninitializes the ARB handles associated w/this object by calling the uninit methods for the program, fragment, and vertex handles

Reimplemented from cGenericShader.

int cGLSLShader::initializeFragmentShader (  )  [protected, virtual]

Called to create a fragment shader from m_fragmentShaderString.

Initializes the ARB fragment shader handle associated w/this shader

Returns:
>=0 for success, <0 for error

Reimplemented from cGenericShader.

int cGLSLShader::uninitializeFragmentShader (  )  [protected, virtual]

Called to clean up a fragment shader.

Uninitializes the ARB fragment shader handle associated w/this object

Returns:
>=0 for success, <0 for error

Reimplemented from cGenericShader.

int cGLSLShader::initializeVertexShader (  )  [protected, virtual]

Called to create a vertex shader from m_vertexShaderString.

Initializes the ARB vertex shader handle associated w/this shader

Returns:
>=0 for success, <0 for error

Reimplemented from cGenericShader.

int cGLSLShader::uninitializeVertexShader (  )  [protected, virtual]

Called to clean up a vertex shader.

Uninitializes the ARB vertex shader handle associated w/this object

Returns:
>=0 for success, <0 for error

Reimplemented from cGenericShader.

int cGLSLShader::initializeProgram (  )  [protected]

Creates the shader program object.

Initializes the ARB program object associated w/this shader

Returns:
>=0 for success, <0 for error

void cGLSLShader::uninitializeProgram (  )  [protected]

Cleans up the shader program object (detaches the shaders and deletes the object).

Uninitializes the ARB program object associated w/this shader

void cGLSLShader::enableShaders (  )  [protected, virtual]

Called at the beginning of a rendering pass to enable shaders, must be over-ridden by subclasses

Implements cGenericShader.

void cGLSLShader::disableShaders (  )  [protected, virtual]

Called at the end of a rendering pass to disable shaders, must be over-ridden by subclasses

Implements cGenericShader.


The documentation for this class was generated from the following files:
Generated on Mon Jun 11 09:41:47 2007 for CHAI 3D by  doxygen 1.5.2