VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Static Public Member Functions | Private Member Functions
makVrv::DtOsgShaderUtils Class Reference

Miscellaneous shader utilities for osg.

Static Public Member Functions

static bool getVPShaderVector (osg::StateSet *ss, osg::State &state, unsigned int &shaderHash, std::vector< unsigned int > &vertShaderVector, std::vector< unsigned int > &fragShaderVector, bool skipShadowShaders, bool skipMultiViewShaders)
 
static bool addDegenerateShadersIfNeeded (osg::StateSet *ss, osg::State &state, std::vector< unsigned int > &vertShaderVector, std::vector< unsigned int > &fragShaderVector, bool skip_shadow_shaders=false)
 
static void restoreEverything (osg::State &state)
 
static void restoreOpenGLMode (const osg::State &state, int stateToSet)
 
static void restoreOpenGLStateAttribute (osg::State &state, osg::StateAttribute::Type type)
 
static void restoreOpenGLProgram (const osg::State &state)
 
static void restoreOpenGLFBO (const osg::State &state)
 
static void markAllTextureAttributesDirty (osg::State &state)
 
static void generateModelInstanceShaders (osg::Node *node, const std::string &shaderName)
 

Private Member Functions

 DtOsgShaderUtils ()=delete
 
 DtOsgShaderUtils (const DtOsgShaderUtils &rhs)=delete
 
DtOsgShaderUtilsoperator= (const DtOsgShaderUtils &rhs)=delete
 
virtual ~DtOsgShaderUtils ()=delete
 

Constructor & Destructor Documentation

makVrv::DtOsgShaderUtils::DtOsgShaderUtils ( )
privatedelete

not allowed

makVrv::DtOsgShaderUtils::DtOsgShaderUtils ( const DtOsgShaderUtils rhs)
privatedelete

not allowed

virtual makVrv::DtOsgShaderUtils::~DtOsgShaderUtils ( )
privatevirtualdelete

not allowed

Member Function Documentation

DtOsgShaderUtils& makVrv::DtOsgShaderUtils::operator= ( const DtOsgShaderUtils rhs)
privatedelete

not allowed

static bool makVrv::DtOsgShaderUtils::getVPShaderVector ( osg::StateSet *  ss,
osg::State &  state,
unsigned int shaderHash,
std::vector< unsigned int > &  vertShaderVector,
std::vector< unsigned int > &  fragShaderVector,
bool  skipShadowShaders,
bool  skipMultiViewShaders 
)
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 bool makVrv::DtOsgShaderUtils::addDegenerateShadersIfNeeded ( osg::StateSet *  ss,
osg::State &  state,
std::vector< unsigned int > &  vertShaderVector,
std::vector< unsigned int > &  fragShaderVector,
bool  skip_shadow_shaders = false 
)
static

adds a degenerate shadow shader

static void makVrv::DtOsgShaderUtils::restoreEverything ( osg::State &  state)
static
static void makVrv::DtOsgShaderUtils::restoreOpenGLMode ( const osg::State &  state,
int  stateToSet 
)
static

restore the OpenGL mode of the state

static void makVrv::DtOsgShaderUtils::restoreOpenGLStateAttribute ( osg::State &  state,
osg::StateAttribute::Type  type 
)
static

restore the OpenGL state attribute

static void makVrv::DtOsgShaderUtils::restoreOpenGLProgram ( const osg::State &  state)
static

restore the OpenGL program

static void makVrv::DtOsgShaderUtils::restoreOpenGLFBO ( const osg::State &  state)
static

restore the OpenGL fbo

static void makVrv::DtOsgShaderUtils::markAllTextureAttributesDirty ( osg::State &  state)
static

mark dirty

static void makVrv::DtOsgShaderUtils::generateModelInstanceShaders ( osg::Node *  node,
const std::string &  shaderName 
)
static

utility function for generating shaders for vrvOsg model instances simpler than the DtOsgShaderManager::generateShaders in that it doesn't share the statesets and just runs the osgEarth::ShaderGenerator on the node. This was created solely for the purpose of removing duplicate code for model instances to setup their shaders.


The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)