![]() |
VR-Forces Developer's Guide
|
Encapsulate an OpenGL texture object that is created/used in indirect rendering.
The life time of these is managed by DtIndirectGlTextureObjectManager/
See DtIndirectGlTextureObjectManager for detailed documentation of this c;lass
Public Member Functions | |
| DtIndirectGlTextureObject (DtDe &de, unsigned int textureId) | |
| virtual | ~DtIndirectGlTextureObject () |
| DtIndirectGlTextureObject ()=delete | |
| DtIndirectGlTextureObject (DtIndirectGlTextureObject &rhs)=delete | |
| DtIndirectGlTextureObject & | operator= (DtIndirectGlTextureObject &rhs)=delete |
| virtual bool | isResident (const void *glContext) const |
| virtual void | makeResident () |
| virtual void | makeNonResident () |
| virtual int | numOfContextsResidentIn (void) const |
| virtual uint64_t | textureAddress (void) const |
| virtual void | addGpuCullingUser (const DtGpuCulling *culling) |
| virtual void | removeGpuCullingUser (const DtGpuCulling *culling) |
| virtual unsigned int | textureId (void) const |
| virtual int | incrementNumUsers () |
| virtual int | decrementNumUsers () |
Protected Attributes | |
| unsigned int | myGlTextureId |
| std::uint64_t | myTextureAddress |
| std::string | myTextureName |
| std::unordered_set< const void * > | myContextsInWhichResident |
| std::unordered_set< const DtGpuCulling * > | myUsers |
| boost::mutex | myUserMutex |
| DtIndirectGlTextureObjectManager & | myParent |
| DtIndirectGlTextureObjectTracker & | myIndirectGlTextureObjectTracker |
| DtIndirectLog & | myIndirectLog |
| DtDe & | myDe |
| std::atomic< int > | myNumUsers |
Static Protected Attributes | |
| static std::thread::id | theMainThreadId |
constructor
|
virtual |
destructor
|
delete |
not allowed
|
delete |
not allowed
|
delete |
not allowed
|
virtual |
Whether resident in this context. This function does not need a valid gl context while calling. Just the gc pointer corresponding to the passed in gl context.
|
virtual |
This function needs a valid gl context during the call.
|
virtual |
This function needs a valid gl context during the call.
|
virtual |
how many contexts is this resident in? This function does not need a valid gl context while calling.
|
virtual |
This does not change for the lifetime of the DtIndirectGlTextureObject (gl texture object) This address is made resident/non-resident externally in the DtIndirectTextureResidencyManager and the first time the DtIndirectGlTexture is created in DtIndirectGlTextureObjectManager.
|
virtual |
Currently, DtIndirectGeometry(and in reality DtGpuCulling inside of it) are the only 'users' of bindless textures. Note: In reality however we are using bindless textures in a roundabout fashion, elsewhere. See for example: https://jira.mak.com/browse/VRV-4316 So, this comment needs to be updated and the function extended/abstracted/refined when we do that properly.
|
virtual |
Currently, DtIndirectGeometry(and in reality DtGpuCulling inside of it) are the only 'users' of bindless textures. Note: In reality however we are using bindless textures in a roundabout fashion, elsewhere. See for example: https://jira.mak.com/browse/VRV-4316 So, this comment needs to be updated and the function extended/abstracted/refined when we do that properly.
the actual gl texture object id
|
virtual |
ref counting tracking for when DtIndirectGlTextureObject is used directly
|
virtual |
ref counting tracking for when DtIndirectGlTextureObject is used directly
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |