VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends
makVrv::DtIndirectTextureCollectionPolicy Class Referenceabstract

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.

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

Public Member Functions

virtual ~DtIndirectTextureCollectionPolicy ()
 
virtual void collectTextures (DtIndirectGeometryTextures *texturePointers, const osg::StateSet *stateSet, const std::string &modelName) const =0
 
virtual const
DtIndirectEffectTexturesTemplate
effectTexturesTemplate (void) const
 
virtual std::string hashKey (const DtIndirectEffectTexturesTemplate &effectTexturesState, unsigned int textureCoordinateCount) const
 
virtual const std::string & glslTextureDeclarationHashDefine (const DtIndirectEffectTexturesTemplate &effectTexturesState, unsigned int numTexCoords) const =0
 
virtual void printHashDefineDetails (const DtIndirectEffectTexturesTemplate &effectTexturesState) const =0
 

Protected Types

typedef std::map< std::string,
std::string > 
MapEffectTexturesStateToHashDefines
 

Protected Member Functions

 DtIndirectTextureCollectionPolicy (DtDe &de)
 

Protected Attributes

DtIndirectEffectTexturesTemplate myEffectTexturesTemplate
 
boost::mutex myMutex
 
MapEffectTexturesStateToHashDefines myMutableMapEffectTexturesStateToHashDefines
 
DtDemyDe
 

Friends

class DtIndirectTextureCollectionPolicyCreator
 

Member Typedef Documentation

typedef std::map<std::string, std::string> makVrv::DtIndirectTextureCollectionPolicy::MapEffectTexturesStateToHashDefines
protected

Constructor & Destructor Documentation

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

destructor

makVrv::DtIndirectTextureCollectionPolicy::DtIndirectTextureCollectionPolicy ( DtDe de)
protected

constructor

Member Function Documentation

virtual void makVrv::DtIndirectTextureCollectionPolicy::collectTextures ( DtIndirectGeometryTextures 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::DtIndirectDefaultTextureCollectionPolicy, and makVrv::oe::CDB::DtCDBTextureCollectionPolicy.

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

access the template

virtual const std::string& makVrv::DtIndirectTextureCollectionPolicy::glslTextureDeclarationHashDefine ( const DtIndirectEffectTexturesTemplate effectTexturesState,
unsigned int  numTexCoords 
) const
pure 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

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

virtual void makVrv::DtIndirectTextureCollectionPolicy::printHashDefineDetails ( const DtIndirectEffectTexturesTemplate effectTexturesState) const
pure 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

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

virtual std::string makVrv::DtIndirectTextureCollectionPolicy::hashKey ( const DtIndirectEffectTexturesTemplate effectTexturesState,
unsigned int  textureCoordinateCount 
) const
virtual

utility for creating a hash key from a textures template

Friends And Related Function Documentation

cannot create directly, must use creator

Member Data Documentation

DtIndirectEffectTexturesTemplate makVrv::DtIndirectTextureCollectionPolicy::myEffectTexturesTemplate
protected
boost::mutex makVrv::DtIndirectTextureCollectionPolicy::myMutex
mutableprotected
MapEffectTexturesStateToHashDefines makVrv::DtIndirectTextureCollectionPolicy::myMutableMapEffectTexturesStateToHashDefines
mutableprotected
DtDe& makVrv::DtIndirectTextureCollectionPolicy::myDe
protected

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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)