14 #include <unordered_set>
16 #include <boost/thread/mutex.hpp>
24 class DtIndirectGlTextureObjectManager;
25 class DtIndirectGlTextureObjectTracker;
26 class DtOsgToGlContextTracker;
56 virtual bool isResident(
const void* glContext)
const;
90 virtual unsigned int textureId(
void)
const;
107 std::unordered_set<const DtGpuCulling*>
myUsers;
DtIndirectGlTextureObjectManager & myParent
Definition: DtIndirectGlTextureObject.h:110
Encapsulate an OpenGL texture object that is created/used in indirect rendering.
Definition: DtIndirectGlTextureObject.h:36
virtual int numOfContextsResidentIn(void) const
how many contexts is this resident in? This function does not need a valid gl context while calling...
virtual void removeGpuCullingUser(const DtGpuCulling *culling)
Currently, DtIndirectGeometry(and in reality DtGpuCulling inside of it) are the only 'users' of bindl...
virtual int incrementNumUsers()
ref counting tracking for when DtIndirectGlTextureObject is used directly
virtual ~DtIndirectGlTextureObject()
destructor
This manager manages the lifetime of the actual gl texture objects (gl unsigned ints) in the indirect...
Definition: DtIndirectGlTextureObjectManager.h:60
This class is a component of the DtIndirectGeometry It inputs are: -> the instances registered with Dt...
Definition: DtGpuCulling.h:88
virtual int decrementNumUsers()
ref counting tracking for when DtIndirectGlTextureObject is used directly
std::uint64_t myTextureAddress
Definition: DtIndirectGlTextureObject.h:102
DtIndirectLog & myIndirectLog
Definition: DtIndirectGlTextureObject.h:112
std::unordered_set< const void * > myContextsInWhichResident
Definition: DtIndirectGlTextureObject.h:105
DtDe & myDe
Definition: DtIndirectGlTextureObject.h:114
virtual void addGpuCullingUser(const DtGpuCulling *culling)
Currently, DtIndirectGeometry(and in reality DtGpuCulling inside of it) are the only 'users' of bindl...
static std::thread::id theMainThreadId
Definition: DtIndirectGlTextureObject.h:118
virtual unsigned int textureId(void) const
the actual gl texture object id
virtual bool isResident(const void *glContext) const
Whether resident in this context. This function does not need a valid gl context while calling...
std::string myTextureName
Definition: DtIndirectGlTextureObject.h:103
DtIndirectGlTextureObject()=delete
not allowed
This class tracks all the texture objects created on the vrv side. It is primarily used for stats of ...
Definition: DtIndirectGlTextureObjectTracker.h:50
This class is specifically used by the indirect system It's separate so that it doesn't interfere wit...
Definition: DtIndirectLog.h:30
boost::mutex myUserMutex
Definition: DtIndirectGlTextureObject.h:108
std::atomic< int > myNumUsers
Definition: DtIndirectGlTextureObject.h:116
virtual void makeResident()
This function needs a valid gl context during the call.
virtual void makeNonResident()
This function needs a valid gl context during the call.
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:76
std::unordered_set< const DtGpuCulling * > myUsers
Definition: DtIndirectGlTextureObject.h:107
DtIndirectGlTextureObjectTracker & myIndirectGlTextureObjectTracker
Definition: DtIndirectGlTextureObject.h:111
DtIndirectGlTextureObject & operator=(DtIndirectGlTextureObject &rhs)=delete
not allowed
unsigned int myGlTextureId
the gl texture id
Definition: DtIndirectGlTextureObject.h:100
virtual uint64_t textureAddress(void) const
This does not change for the lifetime of the DtIndirectGlTextureObject (gl texture object) This addre...