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

This manages the draw components (shader vp wrappers) for combinations of DtIndirectEffectTexturesTemplate + numTextureCoordArrays.

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

Public Member Functions

virtual ~DtIndirectShaderManager ()
 
virtual
DtIndirectShaderComponents
getOrCreate (const DtIndirectEffectTexturesTemplate &effectTexturesTemplate, int numTextCoordArrays)
 
virtual
DtIndirectShaderComponents
find (const DtIndirectEffectTexturesTemplate &effectTexturesTemplate, int numTextCoordArrays)
 
virtual
DtIndirectDebugCullComponent
debugComponent (void) const
 
virtual std::string hashString (const DtIndirectEffectTexturesTemplate &effectTexturesState, unsigned int numTextureCoordArrays) const
 
virtual std::string glslTextureDeclarationHashDefine (const DtIndirectEffectTexturesTemplate &effectTexturesState, unsigned int numTextureCoordArrays) const
 
virtual void printHashDefineDetails (const DtIndirectEffectTexturesTemplate &effectTexturesState) const
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtIndirectShaderManagerinstance (DtDe &de)
 

Protected Types

typedef
tbb::concurrent_hash_map
< size_t,
DtIndirectShaderComponents * > 
HashTable
 

Protected Member Functions

 DtIndirectShaderManager (DtDe &de)
 
size_t hash (const DtIndirectEffectTexturesTemplate &effectTexturesTemplate, int numTextCoordArrays)
 
virtual void compareAndInsertHashDefine (std::stringstream &ss, int type, int effectTextureIdx) const
 
virtual void slot_reloadShaders ()
 

Protected Attributes

DtDemyDe
 
HashTable myHashTable
 
DtIndirectDebugCullComponentmyIndirectDebugCullComponent = nullptr
 
DtEffectTextureRegistrymyEffectTextureRegistry
 
DtSignalConnectionManager myConnections
 

Private Member Functions

 DtIndirectShaderManager ()=delete
 
 DtIndirectShaderManager (const DtIndirectShaderManager &)=delete
 
DtIndirectShaderManageroperator= (const DtIndirectShaderManager &)=delete
 

Member Typedef Documentation

typedef tbb::concurrent_hash_map< size_t, DtIndirectShaderComponents*> makVrv::DtIndirectShaderManager::HashTable
protected

Constructor & Destructor Documentation

virtual makVrv::DtIndirectShaderManager::~DtIndirectShaderManager ( )
virtual

destructor

makVrv::DtIndirectShaderManager::DtIndirectShaderManager ( DtDe de)
protected

constructor. protected. only creator can create

makVrv::DtIndirectShaderManager::DtIndirectShaderManager ( )
privatedelete

not allowed

makVrv::DtIndirectShaderManager::DtIndirectShaderManager ( const DtIndirectShaderManager )
privatedelete

not allowed

Member Function Documentation

static DtIndirectShaderManager& makVrv::DtIndirectShaderManager::instance ( DtDe de)
static

Get an instance of the instance manager.

DtIndirectShaderManager& makVrv::DtIndirectShaderManager::operator= ( const DtIndirectShaderManager )
privatedelete

not allowed

virtual DtIndirectShaderComponents* makVrv::DtIndirectShaderManager::getOrCreate ( const DtIndirectEffectTexturesTemplate effectTexturesTemplate,
int  numTextCoordArrays 
)
virtual

This function is thread safe.

virtual DtIndirectShaderComponents* makVrv::DtIndirectShaderManager::find ( const DtIndirectEffectTexturesTemplate effectTexturesTemplate,
int  numTextCoordArrays 
)
virtual

This function is thread safe.

virtual DtIndirectDebugCullComponent* makVrv::DtIndirectShaderManager::debugComponent ( void  ) const
virtual
virtual std::string makVrv::DtIndirectShaderManager::glslTextureDeclarationHashDefine ( const DtIndirectEffectTexturesTemplate effectTexturesState,
unsigned int  numTextureCoordArrays 
) 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

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

virtual std::string makVrv::DtIndirectShaderManager::hashString ( const DtIndirectEffectTexturesTemplate effectTexturesState,
unsigned int  numTextureCoordArrays 
) const
virtual

utility for creating a hash key from a textures template

size_t makVrv::DtIndirectShaderManager::hash ( const DtIndirectEffectTexturesTemplate effectTexturesTemplate,
int  numTextCoordArrays 
)
protected
virtual void makVrv::DtIndirectShaderManager::compareAndInsertHashDefine ( std::stringstream &  ss,
int  type,
int  effectTextureIdx 
) const
protectedvirtual

check theTextureTypes and add the type define if it is in the list of types.

virtual void makVrv::DtIndirectShaderManager::slot_reloadShaders ( )
protectedvirtual

slot for handling when the shaders are reloaded

Member Data Documentation

DtDe& makVrv::DtIndirectShaderManager::myDe
protected
HashTable makVrv::DtIndirectShaderManager::myHashTable
protected
DtIndirectDebugCullComponent* makVrv::DtIndirectShaderManager::myIndirectDebugCullComponent = nullptr
mutableprotected
DtEffectTextureRegistry& makVrv::DtIndirectShaderManager::myEffectTextureRegistry
protected
DtSignalConnectionManager makVrv::DtIndirectShaderManager::myConnections
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)