18 #include <tbb/atomic.h>
20 #include <boost/thread/condition_variable.hpp>
26 class DtOsgCullVisitor;
28 class DtIndirectTextureResidencyManager;
30 class DtIndirectTextureProcessor;
31 class DtIndirectGlTextureObjectManager;
32 class DtIndirectGlTextureObject;
65 virtual void launchTextureLoadsIfNecessary(
DtOsgRenderer* renderer);
71 virtual void ts_addTextureToLoad(
osg::Texture* texture,
int flags);
77 virtual void ts_moveToToLoadIfNotInToLoadOrLoadingOrNotLoaded(
const std::map<
osg::ref_ptr<osg::Texture>,
int >& texturesToUnload);
80 virtual unsigned int streamTexturesToGpu(
const osg::RenderInfo& renderInfo);
83 virtual unsigned int texturesUpdatedFrameNum()
const;
86 virtual int numTexturesRemaining()
const;
89 virtual void releaseGLObjects(osg::State* state)
const;
92 virtual void stopWork();
96 virtual int numTexturesToLoad()
const;
100 virtual int numTexturesLoading()
const;
106 virtual bool inJobQueue()
const;
109 virtual boost::condition_variable& waitCondition();
113 virtual bool inTextureToGCMap(
const osg::GraphicsContext* graphicsContext,
unsigned int textureObject)
const;
116 virtual bool readyForBindless(
const DtIndirectGlTextureObject* indirectGlTextureObject,
const osg::GraphicsContext* graphicsContext)
const;
119 virtual void makeTexturesResidentIfNeeded(
const osg::GraphicsContext* graphicsContext)
const;
122 virtual void setTextureLoadTimeSlicePeriod(
float period);
129 virtual float textureLoadTimeSlicePeriod(
void)
const;
143 virtual void addTextureToLoad(
osg::Texture* texture,
int flags);
146 virtual osg::Operation * createTextureLoadJob();
150 virtual void printStats(
void)
const;
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
SetTexturesAndFlags myMutableTexturesLoading
Definition: DtIndirectTextureProcessor.h:157
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:87
Encapsulate a gl texture object that is created/used in indirect rendering The life time of these is ...
Definition: DtIndirectGlTextureObject.h:26
std::vector< DtIndirectGeometryTexturesRefPtr > VectorIndirectGeometryTexturesRefPtrs
Definition: DtIndirectGeometryTextures.h:141
OpenThreads::Mutex myWorkMutex
Definition: DtIndirectTextureProcessor.h:173
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
unsigned int myTexturesUpdatedFrameNum
Definition: DtIndirectTextureProcessor.h:169
SetTexturesAndFlags myMutableTexturesToLoad
Definition: DtIndirectTextureProcessor.h:156
SetTexturesAndFlags myMutableTexturesLoaded
Definition: DtIndirectTextureProcessor.h:158
This manager manages the lifetime of the actual gl texture objects (gl unsigned ints) in the indirect...
Definition: DtIndirectGlTextureObjectManager.h:60
Manager class that handles texture objects and texture residency, as contexts get created and destroy...
Definition: DtIndirectTextureResidencyManager.h:50
float myTextureLoadTimeSlicePeriod
time slice period to load textures
Definition: DtIndirectTextureProcessor.h:162
tbb::atomic< bool > myInJobQueue
Definition: DtIndirectTextureProcessor.h:164
const char * creatorTypeName< DtIndirectTextureProcessor >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectTextureProcessor.h:39
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
bool myStopWork
Definition: DtIndirectTextureProcessor.h:172
class to hold osg Textures (diffuse map texture + effect textures) basically just a list of osg textu...
Definition: DtIndirectGeometryTextures.h:26
DtIndirectTextureResidencyManager * myTextureResidencyManager
handle residency, textures as contexts get created/destroyed
Definition: DtIndirectTextureProcessor.h:177
std::set< osg::ref_ptr< osg::Texture > > SetTextures
Definition: DtIndirectTextureProcessor.h:153
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
Definition: DtIndirectTextureProcessor.h:42
This class is passed as a pointer to DtIndirectTextureProcessor. The processor then uses this in conj...
Definition: DtIndirectLimitTextureStrategy.h:65
boost::condition_variable myWaitCondition
Definition: DtIndirectTextureProcessor.h:174
DtIndirectGlTextureObjectManager & myIndirectTextureObjectManager
cached reference to the de keyed texture object manager
Definition: DtIndirectTextureProcessor.h:182
SetTextures myMutableTexturesFailed
Definition: DtIndirectTextureProcessor.h:159
DtVirtualBaseClassCreator< DtIndirectTextureProcessor, const DtIndirectLimitTextureStrategy & > DtIndirectTextureProcessorCreator
Definition: DtIndirectTextureProcessor.h:33
std::map< osg::ref_ptr< osg::Texture >, int > SetTexturesAndFlags
Definition: DtIndirectTextureProcessor.h:154
class for creating a job that runs in the main thread. created/launched via DtIndirectTextureProcesso...
Definition: DtIndirectTextureLoadJob.h:22
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtDe & myDe
Definition: DtIndirectTextureProcessor.h:179
Contains the DtIndirectGeometryTextures class declaration.
friend DtIndirectTextureProcessorCreator
The creator class needs to be a friend so it can create this class.
Definition: DtIndirectTextureProcessor.h:46
const DtIndirectLimitTextureStrategy & myIndirectLimitTextureStrategy
Definition: DtIndirectTextureProcessor.h:184
unsigned int myLastFrameNumber
Definition: DtIndirectTextureProcessor.h:170