- Main Page
- Classes
- Files
- Directories

- Class List
- Class Hierarchy
- Class Members

# cGLSLShader Class Reference

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

`#include <CShaders.h>`

Inheritance diagram for cGLSLShader:

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:

- chai3d/src/graphics/CShaders.h
- chai3d/src/graphics/CShaders.cpp