VProgram Class Reference

#include <VProgram.h>

List of all members.

Public Member Functions

 VProgram ()
 VProgram (const VShader &shaShader)
 VProgram (const VShader &shaShaderA, const VShader &shaShaderB)
 ~VProgram ()
VProgramoperator= (const VProgram &rhs)
void attach (const VShader &shaShader)
void detach (const VShader &shaShader)
void bind ()
void release ()
const int getUniformLocation (const std::string &strName) const
const int getAttributeLocation (const std::string &strName) const

Protected Member Functions

 VProgram (const VProgram &rhs)
void link ()
void initialize ()
void uninitialize ()

Private Attributes

int * m_refCount
unsigned int m_uProgram
std::list< VShaderm_lisShaders


Detailed Description

class capsulating a Shader Program

Definition at line 11 of file VProgram.h.


Constructor & Destructor Documentation

VProgram::VProgram (  )  [inline]

default constructor

Definition at line 18 of file VProgram.h.

References m_refCount.

VProgram::VProgram ( const VShader shaShader  )  [inline]

constructor

Parameters:
shaShader Shader Object

Definition at line 29 of file VProgram.h.

References attach(), initialize(), and m_refCount.

VProgram::VProgram ( const VShader shaShaderA,
const VShader shaShaderB 
) [inline]

constructor

Parameters:
shaShaderA Shader1
shaShaderB Shader2

Definition at line 42 of file VProgram.h.

References attach(), initialize(), and m_refCount.

VProgram::~VProgram (  )  [inline]

default destructor

Definition at line 54 of file VProgram.h.

References m_refCount, and uninitialize().

VProgram::VProgram ( const VProgram rhs  )  [inline, protected]

copy constructor

Definition at line 128 of file VProgram.h.

References m_lisShaders, m_refCount, and m_uProgram.


Member Function Documentation

VProgram& VProgram::operator= ( const VProgram rhs  )  [inline]

assignment operator

Definition at line 68 of file VProgram.h.

References m_lisShaders, m_refCount, m_uProgram, and uninitialize().

void VProgram::attach ( const VShader shaShader  ) 

attaches a Shader to the current Program

Parameters:
shaShader Shader to attach

Definition at line 4 of file VProgram.cpp.

References VShader::attach(), VShader::GetObject(), link(), m_lisShaders, and m_uProgram.

Referenced by VProgram().

void VProgram::detach ( const VShader shaShader  ) 

detaches a Shader from the current Program

Parameters:
shaShader Shader to detach

Definition at line 35 of file VProgram.cpp.

References VShader::detach(), VShader::GetObject(), link(), m_lisShaders, and m_uProgram.

void VProgram::bind (  ) 

binds the current Program

Definition at line 66 of file VProgram.cpp.

References m_uProgram.

Referenced by VFlowData::generateTextures(), VImage::renderOuterScreen(), VFramebufferObject::renderToFullScreen(), VFramebufferObject::renderToLowerLeftQuad(), VImage::renderToLowerRightQuad(), VFramebufferObject::renderToLowerRightQuad(), VFlowRenderer::setShaderWrapperGlyph(), VFlowRenderer::setShaderWrapperGlyphTf(), VFlowRenderer::setShaderWrapperIcon(), VFlowRenderer::setShaderWrapperLIC(), VFlowRenderer::setShaderWrapperLICTexture(), VFlowRenderer::setShaderWrapperLICTextureTf(), VFlowRenderer::setShaderWrapperLICTf(), VFlowRenderer::setShaderWrapperOLICTexture(), VFlowRenderer::setShaderWrapperPressure(), VFlowRenderer::setShaderWrapperStreamLines(), VFlowRenderer::setShaderWrapperStreamLinesGlyph(), VFlowRenderer::setShaderWrapperStreamLinesTf(), VFlowRenderer::setShaderWrapperStreamLinesTfGlyph(), VFlowRenderer::setShaderWrapperVelocity(), and VFlowRenderer::setShaderWrapperVorticity().

void VProgram::release (  ) 

releases the current Program

Definition at line 78 of file VProgram.cpp.

References m_uProgram.

Referenced by VFlowRenderer::clearShaderWrapperGlyph(), VFlowRenderer::clearShaderWrapperGlyphTf(), VFlowRenderer::clearShaderWrapperIcon(), VFlowRenderer::clearShaderWrapperLIC(), VFlowRenderer::clearShaderWrapperLICTexture(), VFlowRenderer::clearShaderWrapperLICTextureTf(), VFlowRenderer::clearShaderWrapperLICTf(), VFlowRenderer::clearShaderWrapperOLICTexture(), VFlowRenderer::clearShaderWrapperPressure(), VFlowRenderer::clearShaderWrapperStreamLines(), VFlowRenderer::clearShaderWrapperStreamLinesGlyph(), VFlowRenderer::clearShaderWrapperStreamLinesTf(), VFlowRenderer::clearShaderWrapperStreamLinesTfGlyph(), VFlowRenderer::clearShaderWrapperVelocity(), VFlowRenderer::clearShaderWrapperVorticity(), VFlowData::generateTextures(), VImage::renderOuterScreen(), VFramebufferObject::renderToFullScreen(), VFramebufferObject::renderToLowerLeftQuad(), VImage::renderToLowerRightQuad(), and VFramebufferObject::renderToLowerRightQuad().

const int VProgram::getUniformLocation ( const std::string &  strName  )  const

gets the Handle to the Uniform with the given Name

Parameters:
name Name of Uniform
Returns:
Handle to Uniform

Definition at line 90 of file VProgram.cpp.

References m_uProgram.

Referenced by VFlowData::generateTextures(), VFramebufferObject::renderToFullScreen(), VFramebufferObject::renderToLowerLeftQuad(), VFramebufferObject::renderToLowerRightQuad(), VFlowRenderer::setShaderWrapperGlyph(), VFlowRenderer::setShaderWrapperGlyphTf(), VFlowRenderer::setShaderWrapperIcon(), VFlowRenderer::setShaderWrapperLIC(), VFlowRenderer::setShaderWrapperLICTexture(), VFlowRenderer::setShaderWrapperLICTextureTf(), VFlowRenderer::setShaderWrapperLICTf(), VFlowRenderer::setShaderWrapperOLICTexture(), VFlowRenderer::setShaderWrapperPressure(), VFlowRenderer::setShaderWrapperStreamLines(), VFlowRenderer::setShaderWrapperStreamLinesGlyph(), VFlowRenderer::setShaderWrapperStreamLinesTf(), VFlowRenderer::setShaderWrapperStreamLinesTfGlyph(), VFlowRenderer::setShaderWrapperVelocity(), and VFlowRenderer::setShaderWrapperVorticity().

const int VProgram::getAttributeLocation ( const std::string &  strName  )  const

gets the Handle to the Shader Parameter with given Attribute

Parameters:
name Name of Attribute
Returns:
Handle to Attribute

Definition at line 106 of file VProgram.cpp.

References m_uProgram.

void VProgram::link (  )  [protected]

links the current Program

Definition at line 122 of file VProgram.cpp.

References m_uProgram.

Referenced by attach(), and detach().

void VProgram::initialize (  )  [protected]

inits the current Program

Definition at line 153 of file VProgram.cpp.

References m_uProgram.

Referenced by VProgram().

void VProgram::uninitialize (  )  [protected]

uninitializes the Program

Definition at line 168 of file VProgram.cpp.

References m_lisShaders, and m_uProgram.

Referenced by operator=(), and ~VProgram().


Member Data Documentation

int* VProgram::m_refCount [private]

refcount of Program.

Definition at line 153 of file VProgram.h.

Referenced by operator=(), VProgram(), and ~VProgram().

unsigned int VProgram::m_uProgram [private]

Handle to the Current Program.

Definition at line 154 of file VProgram.h.

Referenced by attach(), bind(), detach(), getAttributeLocation(), getUniformLocation(), initialize(), link(), operator=(), release(), uninitialize(), and VProgram().

std::list<VShader> VProgram::m_lisShaders [private]

Shader Object attached to the current Program.

Definition at line 155 of file VProgram.h.

Referenced by attach(), detach(), operator=(), uninitialize(), and VProgram().


The documentation for this class was generated from the following files:
Generated on Mon Jan 21 01:15:17 2008 for FlowVis by  doxygen 1.5.4