All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdBufferArrayRange Class Referenceabstract

Interface class for representing range (subset) locator of HdBufferArray. More...

+ Inheritance diagram for HdBufferArrayRange:

Public Member Functions

virtual HD_API ~HdBufferArrayRange ()
 Destructor (do nothing). More...
 
virtual bool IsValid () const =0
 Returns true if this range is valid. More...
 
virtual bool IsAssigned () const =0
 Returns true is the range has been assigned to a buffer. More...
 
virtual bool IsImmutable () const =0
 Returns true if this range is marked as immutable. More...
 
virtual bool Resize (int numElements)=0
 Resize memory area for this range. More...
 
virtual void CopyData (HdBufferSourceSharedPtr const &bufferSource)=0
 Copy source data into buffer. More...
 
virtual VtValue ReadData (TfToken const &name) const =0
 Read back the buffer content. More...
 
virtual int GetElementOffset () const =0
 Returns the offset at which this range begins in the underlying buffer array in terms of elements. More...
 
virtual int GetByteOffset (TfToken const &resourceName) const =0
 Returns the byte offset at which this range begins in the underlying buffer array for the given resource. More...
 
virtual size_t GetNumElements () const =0
 Returns the number of elements. More...
 
virtual size_t GetVersion () const =0
 Returns the version of the buffer array. More...
 
virtual void IncrementVersion ()=0
 Increment the version of the buffer array. More...
 
virtual size_t GetMaxNumElements () const =0
 Returns the max number of elements. More...
 
virtual HdBufferArrayUsageHint GetUsageHint () const =0
 Gets the usage hint on the underlying buffer array. More...
 
virtual void SetBufferArray (HdBufferArray *bufferArray)=0
 Sets the buffer array associated with this buffer;. More...
 
virtual void DebugDump (std::ostream &out) const =0
 Debug output. More...
 
bool IsAggregatedWith (HdBufferArrayRangeSharedPtr const &other) const
 Returns true if the underlying buffer array is aggregated to other's. More...
 
virtual void GetBufferSpecs (HdBufferSpecVector *bufferSpecs) const =0
 Gets the bufferSpecs for all resources. More...
 

Protected Member Functions

virtual const void * _GetAggregation () const =0
 Returns the aggregation container to be used in IsAggregatedWith() More...
 
 HdBufferArrayRange (const HdBufferArrayRange &)=delete
 
HdBufferArrayRangeoperator= (const HdBufferArrayRange &)=delete
 

Detailed Description

Interface class for representing range (subset) locator of HdBufferArray.

Each memory management strategy defines a specialized range class which is inherited of this interface so that client (drawItem) can be agnostic about the implementation detail of aggregation.

Definition at line 51 of file bufferArrayRange.h.

Constructor & Destructor Documentation

virtual HD_API ~HdBufferArrayRange ( )
virtual

Destructor (do nothing).

The specialized range class may want to do something for garbage collection in its destructor. However, be careful not do any substantial work here (obviously including any kind of GL calls), since the destructor gets called frequently on various contexts.

Member Function Documentation

virtual const void* _GetAggregation ( ) const
protectedpure virtual
virtual void CopyData ( HdBufferSourceSharedPtr const &  bufferSource)
pure virtual
virtual void DebugDump ( std::ostream &  out) const
pure virtual
virtual void GetBufferSpecs ( HdBufferSpecVector *  bufferSpecs) const
pure virtual

Gets the bufferSpecs for all resources.

Implemented in HdStBufferArrayRange.

virtual int GetByteOffset ( TfToken const &  resourceName) const
pure virtual

Returns the byte offset at which this range begins in the underlying buffer array for the given resource.

Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStInterleavedMemoryManager::_StripedInterleavedBufferRange, and HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange.

virtual int GetElementOffset ( ) const
pure virtual

Returns the offset at which this range begins in the underlying buffer array in terms of elements.

Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStInterleavedMemoryManager::_StripedInterleavedBufferRange, and HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange.

virtual size_t GetMaxNumElements ( ) const
pure virtual
virtual size_t GetNumElements ( ) const
pure virtual
virtual HdBufferArrayUsageHint GetUsageHint ( ) const
pure virtual
virtual size_t GetVersion ( ) const
pure virtual
virtual void IncrementVersion ( )
pure virtual

Increment the version of the buffer array.

mostly used for notifying drawbatches to be rebuilt to remove expired BufferArrayRange.

Implemented in HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, HdStInterleavedMemoryManager::_StripedInterleavedBufferRange, and HdStVBOMemoryManager::_StripedBufferArrayRange.

bool IsAggregatedWith ( HdBufferArrayRangeSharedPtr const &  other) const
inline

Returns true if the underlying buffer array is aggregated to other's.

Definition at line 116 of file bufferArrayRange.h.

virtual bool IsAssigned ( ) const
pure virtual
virtual bool IsImmutable ( ) const
pure virtual
virtual bool IsValid ( ) const
pure virtual
virtual bool Resize ( int  numElements)
pure virtual

Resize memory area for this range.

Returns true if it causes container buffer reallocation.

Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStInterleavedMemoryManager::_StripedInterleavedBufferRange, and HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange.

virtual void SetBufferArray ( HdBufferArray bufferArray)
pure virtual

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