Abstract class to look in the stateset and collect textures specified via its template The effect texture visitor installs effect textures during loading Indirect rendering needs to know which effect textures these are (so it can install its indirect rendering based shaders, etc).
More...
Public Member Functions |
| virtual | ~DtIndirectTextureCollectionPolicy () |
| | destructor
|
| virtual void | collectTextures (DtIndirectGeometryTexturesPointers &texturePointers, const osg::StateSet *stateSet, const std::string &modelName) const =0 |
| | inherited class must implement the found textures go into texturePointers pass in the model name to improve the error messages
|
virtual const
DtIndirectEffectTexturesTemplate & | effectTexturesTemplate (void) const |
| | access the template
|
| virtual const std::string & | glslTextureDeclarationHashDefine (void) const |
| | access the the texture declaration (effectively the texture declaration in the shader) The types of effect textures are different in the case of cdb vs point features vs byo Therefore, the corresponding texture structure declarations used by the indirect rendering shaders are different.
|
| virtual int | numFxShaders (void) const |
| | number of shaders for the the effect textures registered this may or may not be the same as the number of textures registered in the DtIndirectEffectTexturesTemplate Indeed, you could register, for example 5 texture types, but handle them using only 3 different shaders, common functionality being shared in a few shaders, or completely not handled
|
virtual const
DtIndirectEffectTextureShader & | fxShader (int index) const |
| | Access a given fx shader.
|
Abstract class to look in the stateset and collect textures specified via its template The effect texture visitor installs effect textures during loading Indirect rendering needs to know which effect textures these are (so it can install its indirect rendering based shaders, etc).
These are slightly different in case of point features, cdb, etc This abstract class allows you to handle these abstractly
| virtual const std::string& makVrv::DtIndirectTextureCollectionPolicy::glslTextureDeclarationHashDefine |
( |
void |
| ) |
const |
|
virtual |
access the the texture declaration (effectively the texture declaration in the shader) The types of effect textures are different in the case of cdb vs point features vs byo Therefore, the corresponding texture structure declarations used by the indirect rendering shaders are different.
This function abstractly allows you to query the declarations in each policy type. This texture declaration is built off of the corresponding DtIndirectEffectTexturesTemplate which is different in each concrete policy type
Reimplemented in makVrv::DtIndirectPointTextureCollectionPolicy, and makVrv::oe::CDB::DtCDBTextureCollectionPolicy.