VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
makVrv::DtIndirectTextureCollectionPolicy Class Reference

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...

Inheritance diagram for makVrv::DtIndirectTextureCollectionPolicy:
Inheritance graph
[legend]

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.

Protected Member Functions

 DtIndirectTextureCollectionPolicy ()
 constructor

Protected Attributes

DtIndirectEffectTexturesTemplate myEffectTexturesTemplate
std::vector
< DtIndirectEffectTextureShader
myFXTextureShaders

Friends

class DtIndirectTextureCollectionPolicyCreator
 cannot create directly, must use creator

Detailed Description

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

Constructor & Destructor Documentation

virtual makVrv::DtIndirectTextureCollectionPolicy::~DtIndirectTextureCollectionPolicy ( )
virtual

destructor

makVrv::DtIndirectTextureCollectionPolicy::DtIndirectTextureCollectionPolicy ( )
protected

constructor

Member Function Documentation

virtual void makVrv::DtIndirectTextureCollectionPolicy::collectTextures ( DtIndirectGeometryTexturesPointers texturePointers,
const osg::StateSet *  stateSet,
const std::string &  modelName 
) const
pure virtual

inherited class must implement the found textures go into texturePointers pass in the model name to improve the error messages

Implemented in makVrv::DtIndirectPointTextureCollectionPolicy, and makVrv::oe::CDB::DtCDBTextureCollectionPolicy.

virtual const DtIndirectEffectTexturesTemplate& makVrv::DtIndirectTextureCollectionPolicy::effectTexturesTemplate ( void  ) const
virtual

access the template

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.

virtual int makVrv::DtIndirectTextureCollectionPolicy::numFxShaders ( void  ) const
virtual

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& makVrv::DtIndirectTextureCollectionPolicy::fxShader ( int  index) const
virtual

Access a given fx shader.

Friends And Related Function Documentation

cannot create directly, must use creator

Member Data Documentation

DtIndirectEffectTexturesTemplate makVrv::DtIndirectTextureCollectionPolicy::myEffectTexturesTemplate
protected
std::vector<DtIndirectEffectTextureShader> makVrv::DtIndirectTextureCollectionPolicy::myFXTextureShaders
protected

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

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)