OWL
OptiX7 Wrapper Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
owl::ObjectRegistry Struct Reference

#include <ObjectRegistry.h>

Inheritance diagram for owl::ObjectRegistry:
owl::ObjectRegistryT< owl::Buffer > owl::ObjectRegistryT< owl::Geom > owl::ObjectRegistryT< owl::GeomType > owl::ObjectRegistryT< owl::Group > owl::ObjectRegistryT< owl::LaunchParams > owl::ObjectRegistryT< owl::LaunchParamsType > owl::ObjectRegistryT< owl::MissProg > owl::ObjectRegistryT< owl::MissProgType > owl::ObjectRegistryT< owl::Module > owl::ObjectRegistryT< owl::RayGen > owl::ObjectRegistryT< owl::RayGenType > owl::ObjectRegistryT< owl::Texture > owl::ObjectRegistryT< T >

Public Member Functions

size_t size () const
 
bool empty () const
 
void forget (RegisteredObject *object)
 
void track (RegisteredObject *object)
 
int allocID ()
 
RegisteredObjectgetPtr (int ID)
 

Private Attributes

std::vector< RegisteredObject * > objects
 
int numIDsAllocedInContext = 0
 
std::stack< int > previouslyReleasedIDs
 
std::mutex mutex
 

Detailed Description

registry that tracks mapping between buffers and buffer IDs. Every buffer should have a valid ID, and should be tracked in this registry under this ID

Member Function Documentation

◆ allocID()

int owl::ObjectRegistry::allocID ( )

◆ empty()

bool owl::ObjectRegistry::empty ( ) const
inline

◆ forget()

void owl::ObjectRegistry::forget ( RegisteredObject object)

◆ getPtr()

RegisteredObject * owl::ObjectRegistry::getPtr ( int  ID)

◆ size()

size_t owl::ObjectRegistry::size ( ) const
inline

◆ track()

void owl::ObjectRegistry::track ( RegisteredObject object)

Member Data Documentation

◆ mutex

std::mutex owl::ObjectRegistry::mutex
private

◆ numIDsAllocedInContext

int owl::ObjectRegistry::numIDsAllocedInContext = 0
private

number of IDs of given type allocated in the LL context; if we ever give out an ID that is greater or equal than this side, we first have to tell the LL context to generate more IDs

◆ objects

std::vector<RegisteredObject *> owl::ObjectRegistry::objects
private

list of all tracked objects. note this are NOT shared-ptr's, else we'd never released objects because each object would always be owned by the registry

◆ previouslyReleasedIDs

std::stack<int> owl::ObjectRegistry::previouslyReleasedIDs
private

list of IDs that have already been allocated before, and have since gotten freed, so can be re-used


The documentation for this struct was generated from the following files: