OWL
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
owl::Object Struct Reference

#include <Object.h>

Inheritance diagram for owl::Object:
owl::Context owl::ContextObject owl::Variable owl::APIContext owl::RegisteredObject owl::BufferIDVariable owl::BufferPointerVariable owl::BufferSizeVariable owl::BufferVariable owl::DeviceIndexVariable owl::GroupVariable owl::TextureVariable owl::UserTypeVariable owl::VariableT< T >

Classes

struct  DeviceData
 

Public Types

typedef std::shared_ptr< ObjectSP
 

Public Member Functions

 Object ()
 
virtual std::string toString () const
 
virtual DeviceData::SP createOn (const std::shared_ptr< DeviceContext > &device)
 
void createDeviceData (const std::vector< std::shared_ptr< DeviceContext > > &devices)
 
template<typename T >
std::shared_ptr< T > as ()
 

Public Attributes

const size_t uniqueID
 
std::vector< DeviceData::SP > deviceData
 

Static Public Attributes

static std::atomic< uint64_t > nextAvailableID
 

Detailed Description

common "root" abstraction for every object this library creates

Constructor & Destructor Documentation

◆ Object()

owl::Object::Object ( )

constructor

Member Function Documentation

◆ as()

template<typename T >
std::shared_ptr< T > owl::Object::as
inline

pretty-typecase to all derived classes

◆ createDeviceData()

void owl::Object::createDeviceData ( const std::vector< std::shared_ptr< DeviceContext > > &  devices)

creates the actual device data for all devies,by calling

See also
createOn() for each device

◆ createOn()

Object::DeviceData::SP owl::Object::createOn ( const std::shared_ptr< DeviceContext > &  device)
virtual

creates the device-specific data for this group

◆ toString()

std::string owl::Object::toString ( ) const
virtual

Member Data Documentation

◆ deviceData

std::vector<DeviceData::SP> owl::Object::deviceData

the list of per-device data for this object - should be exactly one per GPU in the context

◆ nextAvailableID

std::atomic< uint64_t > owl::Object::nextAvailableID
static

atomic counter that always describes the next not yet used unique ID, which we can use to fill in the Object::uniquID values

◆ uniqueID

const size_t owl::Object::uniqueID

a unique ID we assign to each newly created object - this allows any caching algorithms to check if a given object was replaced with another, even if in some internal array it ends up with the same array index as a previous other object


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