VR-Forces 5.0.2 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::DtVirtualProgramCache Class Reference

class to hold a hashed map of strings to equivalent virtual programs to avoid repeated, duplicate creation of a virtual programs

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

Public Member Functions

virtual ~DtVirtualProgramCache ()
 
virtual bool findAndSetOn (const std::string &strHash, osg::StateSet *stateSet)
 
virtual void cache (const std::string &strHash, osgEarth::VirtualProgram *virtualProgram)
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtVirtualProgramCacheinstance (DtDe &de)
 

Protected Types

typedef osg::ref_ptr
< osgEarth::VirtualProgram > 
VirtualProgramRef
 
typedef std::map< std::string,
VirtualProgramRef
StringVpMap
 

Protected Member Functions

 DtVirtualProgramCache (DtDe &de)
 
virtual void slot_reloadShaders (void)
 
virtual void clear ()
 

Protected Attributes

StringVpMap myMapHashesToVirtualPrograms
 
DtDemyDe
 
boost::mutex myMapMutex
 
DtSignalConnectionManager myConnections
 

Private Member Functions

 DtVirtualProgramCache ()=delete
 
 DtVirtualProgramCache (const DtVirtualProgramCache &rhs)=delete
 
DtVirtualProgramCacheoperator= (const DtVirtualProgramCache &rhs)=delete
 

Member Typedef Documentation

typedef osg::ref_ptr<osgEarth::VirtualProgram> makVrv::DtVirtualProgramCache::VirtualProgramRef
protected
typedef std::map<std::string, VirtualProgramRef> makVrv::DtVirtualProgramCache::StringVpMap
protected

Constructor & Destructor Documentation

virtual makVrv::DtVirtualProgramCache::~DtVirtualProgramCache ( )
virtual

DTOR.

makVrv::DtVirtualProgramCache::DtVirtualProgramCache ( DtDe de)
protected

protected. only creator can create

makVrv::DtVirtualProgramCache::DtVirtualProgramCache ( )
privatedelete

not allowed

makVrv::DtVirtualProgramCache::DtVirtualProgramCache ( const DtVirtualProgramCache rhs)
privatedelete

not allowed

Member Function Documentation

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

singleton access to lod virtual program cache

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

not allowed

virtual bool makVrv::DtVirtualProgramCache::findAndSetOn ( const std::string &  strHash,
osg::StateSet *  stateSet 
)
virtual

Find a vp with a hash and set it on the state set, if found. This was just a find returning a raw VP and that can get deleted from underneath/multi-threaded (was happening in cdb). The internal lock prevents this from happening.

virtual void makVrv::DtVirtualProgramCache::cache ( const std::string &  strHash,
osgEarth::VirtualProgram *  virtualProgram 
)
virtual

cache a virtual program with the given hash

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

pre loading function

virtual void makVrv::DtVirtualProgramCache::clear ( )
protectedvirtual

clear internal cache

Member Data Documentation

StringVpMap makVrv::DtVirtualProgramCache::myMapHashesToVirtualPrograms
protected
DtDe& makVrv::DtVirtualProgramCache::myDe
protected
boost::mutex makVrv::DtVirtualProgramCache::myMapMutex
protected
DtSignalConnectionManager makVrv::DtVirtualProgramCache::myConnections
protected

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)