HDK
|
#include <vtBufferSource.h>
Public Member Functions | |
HD_API | HdVtBufferSource (TfToken const &name, VtValue const &value, int arraySize=1, bool allowDoubles=true) |
HD_API | HdVtBufferSource (TfToken const &name, GfMatrix4d const &matrix, bool allowDoubles=true) |
HD_API | HdVtBufferSource (TfToken const &name, VtArray< GfMatrix4d > const &matrices, int arraySize=1, bool allowDoubles=true) |
HD_API | ~HdVtBufferSource () override |
Destructor deletes the internal storage. More... | |
HD_API void | Truncate (size_t numElements) |
TfToken const & | GetName () const override |
Return the name of this buffer source. More... | |
void const * | GetData () const override |
Returns the raw pointer to the underlying data. More... | |
HdTupleType | GetTupleType () const override |
Returns the data type and count of this buffer source. More... | |
HD_API size_t | GetNumElements () const override |
void | GetBufferSpecs (HdBufferSpecVector *specs) const override |
Add the buffer spec for this buffer source into given bufferspec vector. More... | |
bool | Resolve () override |
Prepare the access of GetData(). More... | |
Public Member Functions inherited from HdBufferSource | |
HdBufferSource () | |
virtual HD_API | ~HdBufferSource () |
virtual HD_API size_t | ComputeHash () const |
Computes and returns a hash value for the underlying data. More... | |
bool | IsResolved () const |
Returns true it this computation has already been resolved. More... | |
bool | HasResolveError () const |
Returns true if an error occurred during resolve. More... | |
HD_API bool | IsValid () const |
virtual HD_API bool | HasPreChainedBuffer () const |
Returns true if this buffer has a pre-chained buffer. More... | |
virtual HD_API HdBufferSourceSharedPtr | GetPreChainedBuffer () const |
Returns the pre-chained buffer. More... | |
virtual HD_API bool | HasChainedBuffer () const |
Returns true if this buffer has any chained buffer(s) More... | |
virtual HD_API HdBufferSourceSharedPtrVector | GetChainedBuffers () const |
Returns the vector of chained buffers. More... | |
Static Public Member Functions | |
static HD_API HdType | GetDefaultMatrixType () |
Protected Member Functions | |
HD_API bool | _CheckValid () const override |
Protected Member Functions inherited from HdBufferSource | |
void | _SetResolved () |
void | _SetResolveError () |
bool | _TryLock () |
An implementation of HdBufferSource where the source data value is a VtValue.
Definition at line 49 of file vtBufferSource.h.
HD_API HdVtBufferSource::HdVtBufferSource | ( | TfToken const & | name, |
VtValue const & | value, | ||
int | arraySize = 1 , |
||
bool | allowDoubles = true |
||
) |
Constructs a new buffer from a VtValue.
arraySize | indicates how many values are provided per element. |
allowDoubles | indicates if double types can be used, or if they must be converted to floats. |
HD_API HdVtBufferSource::HdVtBufferSource | ( | TfToken const & | name, |
GfMatrix4d const & | matrix, | ||
bool | allowDoubles = true |
||
) |
Constructs a new buffer from a matrix. The data is convert to the default type (see GetDefaultMatrixType()).
Note that if we use above VtValue taking constructor, we can use either float or double matrix regardless the default type.
allowDoubles | indicates if double types can be used, or if they must be converted to floats regardless of the default type. |
HD_API HdVtBufferSource::HdVtBufferSource | ( | TfToken const & | name, |
VtArray< GfMatrix4d > const & | matrices, | ||
int | arraySize = 1 , |
||
bool | allowDoubles = true |
||
) |
Constructs a new buffer from a matrix. The data is convert to the default type (see GetDefaultMatrixType()).
Note that if we use above VtValue taking constructor, we can use either float or double matrix regardless the default type.
arraySize | indicates how many values are provided per element. |
allowDoubles | indicates if double types can be used, or if they must be converted to floats regardless of the default type. |
|
override |
Destructor deletes the internal storage.
|
overrideprotectedvirtual |
Checks the validity of the source buffer. This function is called by IsValid() to do the real checking.
Should only be implemented in classes at leafs of the class hierarchy (Please place common validation code in a new non-virtual method)
This code should return false:
The resolve step requires a 'source' buffer and that buffer is invalid.
If returning false, the buffer will not be registered with the resource registry. AddBufferSpec and Resolve will not be called
Implements HdBufferSource.
|
inlineoverridevirtual |
Add the buffer spec for this buffer source into given bufferspec vector.
Implements HdBufferSource.
Definition at line 124 of file vtBufferSource.h.
|
inlineoverridevirtual |
Returns the raw pointer to the underlying data.
Implements HdBufferSource.
Definition at line 109 of file vtBufferSource.h.
Returns the default matrix type. The default is HdTypeFloatMat4, but if HD_ENABLE_DOUBLEMATRIX is true, then HdTypeDoubleMat4 is used instead.
|
inlineoverridevirtual |
Return the name of this buffer source.
Implements HdBufferSource.
Definition at line 104 of file vtBufferSource.h.
|
overridevirtual |
Returns the number of elements (e.g. VtVec3dArray().GetLength()) from the source array.
Implements HdBufferSource.
|
inlineoverridevirtual |
Returns the data type and count of this buffer source.
Implements HdBufferSource.
Definition at line 114 of file vtBufferSource.h.
|
inlineoverridevirtual |
Prepare the access of GetData().
Implements HdBufferSource.
Definition at line 129 of file vtBufferSource.h.
Truncate the buffer to the given number of elements. If the VtValue contains too much data, this is a way to only forward part of the data to the hydra buffer system. numElements must be less than or equal to the current result of GetNumElements().