19 #include <osg/Texture>
22 #include <unordered_map>
26 class GraphicsContext;
36 class DtIndirectTextureResidencyManager;
69 virtual bool inTextureToGCMap(
const osg::GraphicsContext* graphicsContext, osg::Texture::TextureObject* textureObject)
const;
72 virtual void addTextureToGCMapIfNecessary(
const osg::RenderInfo& renderInfo, osg::Texture::TextureObject* textureObject)
const;
75 virtual void makeTexturesResidentIfNeeded(
const osg::RenderInfo& renderInfo)
const;
78 virtual void releaseGLObjects(osg::State* state)
const;
81 virtual void slot_windowToBeDestroyed(
DtWindow* window);
85 virtual void addTextureToGCMap(
const osg::GraphicsContext* graphicsContext, osg::Texture::TextureObject* textureObject)
const;
88 virtual void collectNewTexturesAcrosssNonSharedContextIds(
const osg::GraphicsContext* graphicsContext, osg::Texture::TextureObject* textureObject)
const;
91 virtual void makeNewTexturesAcrosssNonSharedContextIdsResident(
const osg::GraphicsContext* graphicsContext)
const;
101 typedef std::set<osg::ref_ptr<osg::Texture::TextureObject> >
TexturesSet;
TexturesSet myMutableAllSeenTextures
Texture ids for all textures that we have seen so far in all contexts.
Definition: DtIndirectTextureResidencyManager.h:112
Manager to delete GLBuffer in the main thread.
Definition: DtGlDeleteObjectManager.h:33
Abstract Base class.
Definition: DtWindow.h:25
DtSignalConnectionManager myConnections
for handling window destroyed event
Definition: DtIndirectTextureResidencyManager.h:118
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::set< osg::ref_ptr< osg::Texture::TextureObject > > TexturesSet
Definition: DtIndirectTextureResidencyManager.h:101
Manager class that handles texture objects and texture residency, as contexts get created and destroy...
Definition: DtIndirectTextureResidencyManager.h:48
MapGCToTexSet myMutableMapGraphicsContextToTexturesSet
Which textures have we seen in what contexts.
Definition: DtIndirectTextureResidencyManager.h:109
OpenThreads::Mutex myMutableTextureResidencyMutex
Definition: DtIndirectTextureResidencyManager.h:98
DtDe & myDe
Definition: DtIndirectTextureResidencyManager.h:120
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtVirtualBaseClassCreator< DtIndirectTextureResidencyManager > DtIndirectTextureResidencyManagerCreator
Definition: DtIndirectTextureResidencyManager.h:38
std::map< unsigned int, SetNonSharedContextIds > MapContextIdsToNonSharedContextIds
Definition: DtIndirectTextureResidencyManager.h:96
std::map< const osg::GraphicsContext *, TexturesSet > MapGCToTexSet
Definition: DtIndirectTextureResidencyManager.h:107
MapNonSharedContextIdsToNewTexturesArray myMutableMapNonSharedContextIdsToNewTexturesSet
The next textures that have been seen in this context.
Definition: DtIndirectTextureResidencyManager.h:105
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtGLDeleteObjectManager & myGlDeleteObjectManager
hold an instance to the delete manager
Definition: DtIndirectTextureResidencyManager.h:115
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
const char * creatorTypeName< DtIndirectTextureResidencyManager >(void)
Definition: DtIndirectTextureResidencyManager.h:43
std::set< unsigned int > SetNonSharedContextIds
Definition: DtIndirectTextureResidencyManager.h:95
Base class to provide boost signal/slot management.
Contains DLL export macros.
friend DtIndirectTextureResidencyManagerCreator
only creator can create
Definition: DtIndirectTextureResidencyManager.h:52
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::unordered_map< const osg::GraphicsContext *, TexturesSet > MapNonSharedContextIdsToNewTexturesArray
Definition: DtIndirectTextureResidencyManager.h:103
MapContextIdsToNonSharedContextIds myMutableMapContextIdsToNonSharedContextIds
Definition: DtIndirectTextureResidencyManager.h:97