24 #ifndef PXR_IMAGING_HD_STRATEGY_BASE_H
25 #define PXR_IMAGING_HD_STRATEGY_BASE_H
28 #include "pxr/imaging/hd/api.h"
29 #include "pxr/imaging/hd/version.h"
30 #include "pxr/imaging/hd/bufferSpec.h"
31 #include "pxr/imaging/hd/bufferArray.h"
38 PXR_NAMESPACE_OPEN_SCOPE
41 using HdBufferArraySharedPtr = std::shared_ptr<class HdBufferArray>;
42 using HdBufferArrayRangeSharedPtr = std::shared_ptr<class HdBufferArrayRange>;
59 HdBufferSpecVector
const &bufferSpecs,
68 HdBufferSpecVector
const &bufferSpecs,
73 HdBufferArraySharedPtr
const &bufferArray)
const = 0;
77 HdBufferArraySharedPtr
const &bufferArray,
86 PXR_NAMESPACE_CLOSE_SCOPE
88 #endif // PXR_IMAGING_HD_STRATEGY_BASE_H
size_t AggregationId
Aggregation ID.
The union provides a set of flags that provide hints to the memory management system about the proper...
Aggregation strategy base class.
A map with string keys and VtValue values.
virtual HdBufferArraySharedPtr CreateBufferArray(TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint)=0
Factory for creating HdBufferArray.
Token for efficient comparison, assignment, and hashing of known strings.
virtual HdBufferArrayRangeSharedPtr CreateBufferArrayRange()=0
Factory for creating HdBufferArrayRange.
virtual HD_API void Flush()
(Optional) called to Flush consolidated / staging buffers.
virtual HdBufferSpecVector GetBufferSpecs(HdBufferArraySharedPtr const &bufferArray) const =0
Returns the buffer specs from a given buffer array.
virtual AggregationId ComputeAggregationId(HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) const =0
Returns id for given bufferSpecs to be used for aggregation.
virtual size_t GetResourceAllocation(HdBufferArraySharedPtr const &bufferArray, VtDictionary &result) const =0
Returns the accumulated GPU resource allocation
/// for items in the BufferArray passed as paramete...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...