VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtIndirectVaoManager Class Reference

This class manages the vaos for indirect.

There is only one vao per gl context for indirect, since we use bindless.

It is not buffer specific and just encapsulates a state.

There is only one method of interest: DtIndirectVaoManager::vao()

Inheritance diagram for makVrv::DtIndirectVaoManager:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtIndirectVaoManager ()
 
virtual unsigned int vao (bool rerecord)
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtIndirectVaoManagerinstance (DtDe &de)
 

Protected Member Functions

 DtIndirectVaoManager (DtDe &de)
 
virtual void recordVAO (unsigned int vao)
 
virtual void slot_contextAboutToBeDestroyed (const void *glContext)
 
virtual void deleteVao (const void *glContext)
 

Protected Attributes

DtDemyDe
 
DtSignalConnectionManager myConnections
 
std::unordered_map< const void
*, DtGlVaoAndContext
myGlContextToVao
 
DtOsgToGlContextTrackermyOsgToGlContextTracker
 
DtIndirectLogmyIndirectLog
 

Private Member Functions

 DtIndirectVaoManager ()=delete
 
 DtIndirectVaoManager (const DtIndirectVaoManager &)=delete
 
DtIndirectVaoManageroperator= (const DtIndirectVaoManager &)=delete
 

Constructor & Destructor Documentation

virtual makVrv::DtIndirectVaoManager::~DtIndirectVaoManager ( )
virtual

dtor

makVrv::DtIndirectVaoManager::DtIndirectVaoManager ( DtDe de)
protected

only creator can create

makVrv::DtIndirectVaoManager::DtIndirectVaoManager ( )
privatedelete

not allowed

makVrv::DtIndirectVaoManager::DtIndirectVaoManager ( const DtIndirectVaoManager )
privatedelete

not allowed

Member Function Documentation

static DtIndirectVaoManager& makVrv::DtIndirectVaoManager::instance ( DtDe de)
static

Access the singleton instance.

DtIndirectVaoManager& makVrv::DtIndirectVaoManager::operator= ( const DtIndirectVaoManager )
privatedelete

not allowed

virtual unsigned int makVrv::DtIndirectVaoManager::vao ( bool  rerecord)
virtual

method to create and 'record' a vertex array object (VAO) using VAO enables us to combine multiple buffer binds into a single 'command' via 'recording' the VAO

Parameters
rerecordindicates whether the vao should be re-recorded even if present in our internal map (perhaps because the buffer addresses, etc changed)
virtual void makVrv::DtIndirectVaoManager::recordVAO ( unsigned int  vao)
protectedvirtual

internal method to record a vao

virtual void makVrv::DtIndirectVaoManager::slot_contextAboutToBeDestroyed ( const void *  glContext)
protectedvirtual

slot for when a context is about to be destroyed This is used to delete the vao

virtual void makVrv::DtIndirectVaoManager::deleteVao ( const void *  glContext)
protectedvirtual

internal

Member Data Documentation

DtDe& makVrv::DtIndirectVaoManager::myDe
protected
DtSignalConnectionManager makVrv::DtIndirectVaoManager::myConnections
protected

for handling context destroyed event

std::unordered_map<const void*, DtGlVaoAndContext> makVrv::DtIndirectVaoManager::myGlContextToVao
protected
DtOsgToGlContextTracker& makVrv::DtIndirectVaoManager::myOsgToGlContextTracker
protected
DtIndirectLog& makVrv::DtIndirectVaoManager::myIndirectLog
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)