18 #include <OpenThreads/Thread>
19 #include <OpenThreads/Block>
21 #include <osg/OperationThread>
22 #include <osg/Texture>
23 #include <osg/observer_ptr>
24 #include <osg/GraphicsContext>
30 class GraphicsContext;
67 virtual void addHandleToDelete(
unsigned int handle);
70 virtual void addTextureIdToDelete(
const osg::GraphicsContext* gContext,
unsigned int textureObject);
73 virtual void addVertexArrayObjectToDelete(
const osg::GraphicsContext* gContext,
const DtGlVaoAndContext& vao);
76 virtual void addFrameBufferObjectToDelete(
const osg::GraphicsContext* gContext,
const DtGlFboAndContext& fbo);
78 virtual void addFrameBufferObjectToDelete(osg::observer_ptr<const osg::GraphicsContext>& gContext,
const DtGlFboAndContext& fbo);
81 virtual void flush(
const osg::GraphicsContext* gc);
84 virtual void flushInvalidGcs(
void);
86 virtual void slot_displayToBeDestroyed(
const std::string& displayName,
DtDe *de);
89 virtual void clearData();
92 virtual void windowDestroyAddTextureIdToDelete(
unsigned int textureObject);
95 virtual void windowDestroyAddTextureIdToKeep(
unsigned int textureObject);
101 virtual void windowDestroyFlushTextureIdsToDelete(
const osg::GraphicsContext* gContext);
114 virtual void flushTexturesArray(std::vector< unsigned int >* texArr,
const osg::GraphicsContext* gc);
116 virtual void deleteBuffers(
void);
117 virtual void deleteTextures(
const osg::GraphicsContext* gc);
118 virtual void deleteVAOs(
const osg::GraphicsContext* gc);
119 virtual void deleteFBOs(
const osg::GraphicsContext* gc);
121 virtual void flushVAOsForInvalidGcs(
void);
122 virtual void flushFBOsForInvalidGcs(
void);
156 virtual void operator () (osg::Object * sv);
DtLockedBufferedQueue< unsigned int > TexturesArray
Definition: DtGlDeleteObjectManager.h:47
DtLockedBufferedQueue< DtGlVaoAndContext > VAOArray
Definition: DtGlDeleteObjectManager.h:51
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtGlDeleteObjectManager & myGlDeleteObjectManager
Reference to the DtGlDeleteObjectManager.
Definition: DtGlDeleteObjectManager.h:161
DtDe & myDe
Definition: DtGlDeleteObjectManager.h:139
std::map< osg::observer_ptr< const osg::GraphicsContext >, VAOArray * > MapContextsToVAOArray
Definition: DtGlDeleteObjectManager.h:53
std::map< osg::observer_ptr< const osg::GraphicsContext >, FBOArray * > MapContextsToFBOArray
Definition: DtGlDeleteObjectManager.h:57
Contains makVrv::DtLockedBufferedQueue class.
std::tuple< unsigned int, void * > DtGlVaoAndContext
Definition: DtGlDeleteObjectManager.h:37
DtLockedBufferedQueue< DtGlFboAndContext > FBOArray
Definition: DtGlDeleteObjectManager.h:55
std::set< unsigned int > myWindowDestroyTextures
Definition: DtGlDeleteObjectManager.h:143
std::map< osg::observer_ptr< const osg::GraphicsContext >, TexturesArray * > MapGCToTexArray
Definition: DtGlDeleteObjectManager.h:49
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains the DtGlBuffer class declaration.
MapGCToTexArray myGraphicsContextToTexturesArray
For keeping texture id's per context.
Definition: DtGlDeleteObjectManager.h:128
std::set< unsigned int > myWindowKeepTextures
Definition: DtGlDeleteObjectManager.h:144
DtSignalConnectionManager myConnections
Any signals to process.
Definition: DtGlDeleteObjectManager.h:137
DtLockedBufferedQueue< unsigned int > myGlBufferToDeleteList
list of handle to delete
Definition: DtGlDeleteObjectManager.h:125
MapContextsToFBOArray myGraphicsContextToFBOArray
For keeping vertex array object id's per context.
Definition: DtGlDeleteObjectManager.h:134
std::tuple< unsigned int, void * > DtGlFboAndContext
Definition: DtGlRenderToTexture.h:30
Base class to provide boost signal/slot management.
Manager to delete GLBuffer in the main thread.
Definition: DtGlDeleteObjectManager.h:44
DtIndirectGlTextureResidencyManager & myGlTextureResidencyManager
Definition: DtGlDeleteObjectManager.h:141
Contains DLL export macros.
Enforces a single DtGlTextureResidencyManager across the whole indirect system/vrv (since the DtGlTex...
Definition: DtIndirectGlTextureResidencyManager.h:24
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
Contains the DtGlVaoManager class declaration.
MapContextsToVAOArray myGraphicsContextToVAOArray
For keeping vertex array object id's per context.
Definition: DtGlDeleteObjectManager.h:131
Job to delete the queued GLBuffer on each frame.
Definition: DtGlDeleteObjectManager.h:149