HDK
|
#include <bufferArrayRange.h>
Public Member Functions | |
HD_API | HdBufferArrayRange () |
virtual HD_API | ~HdBufferArrayRange () |
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 | RequiresStaging () const =0 |
Returns true if this needs a staging buffer for CPU to GPU copies. More... | |
virtual bool | Resize (int numElements)=0 |
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 |
virtual int | GetByteOffset (TfToken const &resourceName) const =0 |
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 |
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 | |
HdBufferArrayRange & | operator= (const HdBufferArrayRange &)=delete |
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.
HD_API HdBufferArrayRange::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.
|
protecteddelete |
|
protectedpure virtual |
Returns the aggregation container to be used in IsAggregatedWith()
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Copy source data into buffer.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
|
pure virtual |
Gets the bufferSpecs for all resources.
Implemented in HdStBufferArrayRange.
Returns the byte offset at which this range begins in the underlying buffer array for the given resource.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns the offset at which this range begins in the underlying buffer array in terms of elements.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns the max number of elements.
Implemented in HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, HdStVBOMemoryManager::_StripedBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns the number of elements.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Gets the usage hint on the underlying buffer array.
Implemented in HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, HdStVBOMemoryManager::_StripedBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns the version of the buffer array.
Implemented in HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, HdStVBOMemoryManager::_StripedBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
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, HdStVBOMemoryManager::_StripedBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
inline |
Returns true if the underlying buffer array is aggregated to other's.
Definition at line 119 of file bufferArrayRange.h.
|
pure virtual |
Returns true is the range has been assigned to a buffer.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns true if this range is marked as immutable.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns true if this range is valid.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
protecteddelete |
Read back the buffer content.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Returns true if this needs a staging buffer for CPU to GPU copies.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Resize memory area for this range. Returns true if it causes container buffer reallocation.
Implemented in HdStVBOMemoryManager::_StripedBufferArrayRange, HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.
|
pure virtual |
Sets the buffer array associated with this buffer;.
Implemented in HdStVBOSimpleMemoryManager::_SimpleBufferArrayRange, HdStVBOMemoryManager::_StripedBufferArrayRange, and HdStInterleavedMemoryManager::_StripedInterleavedBufferRange.