VR-Forces 4.8 Class Documentation
 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 | Private Member Functions | Friends
makVrv::DtIndirectTextureLoaderNode Class Reference

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

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

Public Member Functions

virtual ~DtIndirectTextureLoaderNode ()
 Destructor - clears the list of registrars. More...
 
void 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 More...
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 called during the draw stage. More...
 
virtual void addIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar)
 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 More...
 
virtual void removeIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar)
 remove an indirect registrar from the list of registrars to process called in the main thread - uses mutex for thread safe access of registar list notifys the condition since the list of registrars is changing. More...
 
virtual bool containsIndirectRegistrarToProcess (DtIndirectGeometryRegistrar *registrar, bool blocking=true)
 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 registar 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. More...
 
virtual void clearIndirectRegistrarsToProcess (bool lastCall=false)
 clear the list of indirect registrars to process More...
 

Protected Types

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

Protected Member Functions

 DtIndirectTextureLoaderNode (DtDe &de)
 Constructor. More...
 

Protected Attributes

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

Private Member Functions

 DtIndirectTextureLoaderNode (const DtIndirectTextureLoaderNode &other)
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtIndirectTextureLoaderNodeoperator= (const DtIndirectTextureLoaderNode &other)
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

Friends

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

Detailed Description

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

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)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

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

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 notifys 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 registar list notifys 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 registar 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

Friends And Related Function Documentation

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

Member Data Documentation

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 Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)