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 | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtIndirectTextureLoaderNode Class Reference

node for processing textures needed for indirect geometries this allows for textures to be uploaded to the GPU before the tile has paged in so that there are not holes/gray tiles poping in

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

Public Member Functions

virtual ~DtIndirectTextureLoaderNode ()
 
 DtIndirectTextureLoaderNode (const DtIndirectTextureLoaderNode &other)=delete
 
DtIndirectTextureLoaderNodeoperator= (const DtIndirectTextureLoaderNode &other)=delete
 
void accept (osg::NodeVisitor &nv)
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 
virtual void addIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar)
 
virtual void removeIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar)
 
virtual bool containsIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar, bool blocking=true)
 
virtual void clearIndirectRegistrarsToProcess (bool lastCall=false)
 

Protected Types

typedef std::set< osg::ref_ptr
< DtIndirectGeometryRegistrar > > 
RegistrarSet
 

Protected Member Functions

 DtIndirectTextureLoaderNode (DtDe &de)
 

Protected Attributes

friend DtIndirectTextureLoaderNodeCreator
 
boost::mutex myMutex
 
boost::condition_variable myCondition
 
RegistrarSet myProcessors
 
bool myAboutToBeDestroyed
 
DtDemyDtDe
 

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtIndirectTextureLoaderNode::DtIndirectTextureLoaderNode ( DtDe de)
protected

Constructor.

virtual makVrv::DtIndirectTextureLoaderNode::~DtIndirectTextureLoaderNode ( )
virtual

Destructor - clears the list of registrars.

makVrv::DtIndirectTextureLoaderNode::DtIndirectTextureLoaderNode ( const DtIndirectTextureLoaderNode other)
delete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectTextureLoaderNode& makVrv::DtIndirectTextureLoaderNode::operator= ( const DtIndirectTextureLoaderNode other)
delete

Assignment Operator Not implemented – Assignment Not Allowed.

void makVrv::DtIndirectTextureLoaderNode::accept ( osg::NodeVisitor &  nv)

called when the scene is traversed, only does stuff in the cull visitor called in the main thread every frame - uses mutex for thread safe access to the registrar

virtual void makVrv::DtIndirectTextureLoaderNode::drawImplementation ( osg::RenderInfo &  renderInfo) const
virtual

called during the draw stage. Doesn't draw anything, just uploads textures to the GPU called in the main thread every frame - uses mutex for thread safe access to the registrar notifies the condition when a registrar finishes and the list of registrars is changing.

virtual void makVrv::DtIndirectTextureLoaderNode::addIndirectRegistrarToProcess ( DtIndirectGeometryRegistrar registrar)
virtual

add an indirect registrar to the list of registrars to process called in a background paging thread - uses mutex for thread safe access of registrar list

virtual void makVrv::DtIndirectTextureLoaderNode::removeIndirectRegistrarToProcess ( DtIndirectGeometryRegistrar registrar)
virtual

remove an indirect registrar from the list of registrars to process called in the main thread - uses mutex for thread safe access of registrar list notifies the condition since the list of registrars is changing.

virtual bool makVrv::DtIndirectTextureLoaderNode::containsIndirectRegistrarToProcess ( DtIndirectGeometryRegistrar registrar,
bool  blocking = true 
)
virtual

check to see if an indirect registrar is in the list of registrars to process called in a background paging thread - uses mutex for thread safe access of registrar list if blocking is true then it will use a wait condition to wait for a registrar to be removed also checks after a second to see if the database pager has been stopped.

virtual void makVrv::DtIndirectTextureLoaderNode::clearIndirectRegistrarsToProcess ( bool  lastCall = false)
virtual

clear the list of indirect registrars to process

Member Data Documentation

friend makVrv::DtIndirectTextureLoaderNode::DtIndirectTextureLoaderNodeCreator
protected

friend creator class so it is the only thing that can create DtIndirectTextureLoaderNodes

boost::mutex makVrv::DtIndirectTextureLoaderNode::myMutex
mutableprotected
boost::condition_variable makVrv::DtIndirectTextureLoaderNode::myCondition
mutableprotected
RegistrarSet makVrv::DtIndirectTextureLoaderNode::myProcessors
mutableprotected
bool makVrv::DtIndirectTextureLoaderNode::myAboutToBeDestroyed
protected
DtDe& makVrv::DtIndirectTextureLoaderNode::myDtDe
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)