Static Public Member Functions |
| static std::string | loadShaderSource (const std::string &strFileName) |
| | Loads shader source code from a file.
|
| static void | saveShaderSource (const std::string &strFileName, const std::string &strSource) |
| | Saves shader source code to a file.
|
| static unsigned | getNumGPUTextureImageUnits () |
| | Query the number of available texture image units for shader samplers.
|
| static void | bindSingleAttribute (int shader, std::string uniName, bool value, void *hashPtr) |
| | attaches a single attribute to a opengl uniform.
|
| static void | bindAttributes (osg::Node *node, int shader, int contextID) |
| | Loop over the uniforms of the stateset of the node and attach them to the current opengl active shader.
|
| static bool | getVPShaderVector (osg::StateSet *ss, const osg::State &state, unsigned int &shaderHash, std::vector< unsigned int > &vertShaderVector, std::vector< unsigned int > &fragShaderVector) |
| | Collect all the active osg::Shader objects in the provided State and compile them.
|
| static void | deleteShaders (std::vector< unsigned int > shaderVector) |
| | Loop over the opengl shader ids in the shaderVector and deletes them from opengl.
|
| static bool | compileShader (const char *source, unsigned int shaderType, unsigned int &shaderID) |
| | Compiles a shader of type shaderType using source.
|
Static Private Attributes |
| static ShaderUniLocMap | s_shaderUniLocMap |
| | used to cache the shader uniform locations to avoid glGetUniformLocation calls Saves somewhere between 1-3ms and reduces variability of frame time with Triton and Silverlining Tried caching the uniform values as well but that did not seem to make a difference.
|
Member Function Documentation
| static std::string makVrv::DtOsgShaderUtils::loadShaderSource |
( |
const std::string & |
strFileName | ) |
|
|
static |
Loads shader source code from a file.
| static void makVrv::DtOsgShaderUtils::saveShaderSource |
( |
const std::string & |
strFileName, |
|
|
const std::string & |
strSource |
|
) |
| |
|
static |
Saves shader source code to a file.
| static unsigned makVrv::DtOsgShaderUtils::getNumGPUTextureImageUnits |
( |
| ) |
|
|
static |
Query the number of available texture image units for shader samplers.
| static void makVrv::DtOsgShaderUtils::bindSingleAttribute |
( |
int |
shader, |
|
|
std::string |
uniName, |
|
|
bool |
value, |
|
|
void * |
hashPtr |
|
) |
| |
|
static |
attaches a single attribute to a opengl uniform.
| static void makVrv::DtOsgShaderUtils::bindAttributes |
( |
osg::Node * |
node, |
|
|
int |
shader, |
|
|
int |
contextID |
|
) |
| |
|
static |
Loop over the uniforms of the stateset of the node and attach them to the current opengl active shader.
Also loops over the texture attributes in the stateset and attaches those as well
| static bool makVrv::DtOsgShaderUtils::getVPShaderVector |
( |
osg::StateSet * |
ss, |
|
|
const osg::State & |
state, |
|
|
unsigned int & |
shaderHash, |
|
|
std::vector< unsigned int > & |
vertShaderVector, |
|
|
std::vector< unsigned int > & |
fragShaderVector |
|
) |
| |
|
static |
Collect all the active osg::Shader objects in the provided State and compile them.
If they compile they are pushed onto shaderVector. shaderVector is cleared in this function so only the shaders from the State are kept. The stateset "ss" is then cleared of an update mark. Returns True if the ss was marked for an update and the shaderVector was modified.
| static void makVrv::DtOsgShaderUtils::deleteShaders |
( |
std::vector< unsigned int > |
shaderVector | ) |
|
|
static |
Loop over the opengl shader ids in the shaderVector and deletes them from opengl.
| static bool makVrv::DtOsgShaderUtils::compileShader |
( |
const char * |
source, |
|
|
unsigned int |
shaderType, |
|
|
unsigned int & |
shaderID |
|
) |
| |
|
static |
Compiles a shader of type shaderType using source.
shaderID is the new shader Returns True is the compile succeeded
Member Data Documentation
used to cache the shader uniform locations to avoid glGetUniformLocation calls Saves somewhere between 1-3ms and reduces variability of frame time with Triton and Silverlining Tried caching the uniform values as well but that did not seem to make a difference.
The documentation for this class was generated from the following file:
- /exports/nfedora7-1/nightly/docs/vrforcesDevelopment.vrf4-3-branch/include/vrvOsg/DtOsgShaderUtils.h