7#ifndef PXR_EXEC_VDF_OUTPUT_SPEC_H
8#define PXR_EXEC_VDF_OUTPUT_SPEC_H
14#include "pxr/exec/vdf/api.h"
19#include "pxr/base/tf/type.h"
21PXR_NAMESPACE_OPEN_SCOPE
24struct Vdf_OutputSpecTypeInfo
30 AllocateCacheFn allocateCache;
31 ResizeCacheFn resizeCache;
79 return !(*
this == rhs);
89 const Vdf_OutputSpecTypeInfo *typeinfo,
100 template <
typename T>
106 template <
typename T>
107 static const Vdf_OutputSpecTypeInfo * _GenerateTypeInfo() {
108 static const Vdf_OutputSpecTypeInfo ti = {
109 TfType::Find<T>(), _AllocateCache<T>, _ResizeCache<T>
118 static void _RegisterType(
const Vdf_OutputSpecTypeInfo *);
120 template <
typename T>
121 static void _RegisterType() {
122 _RegisterType(_GenerateTypeInfo<T>());
126 const Vdf_OutputSpecTypeInfo *_typeinfo;
130PXR_NAMESPACE_CLOSE_SCOPE
Fast, compressed bit array which is capable of performing logical operations without first decompress...
Token for efficient comparison, assignment, and hashing of known strings.
TfType represents a dynamic runtime type.
Manages low-level value type functionality used within execution.
A VdfOuptutSpec describes an output connector.
VDF_API size_t GetHash() const
Returns a hash for this instance.
VDF_API VdfVector * AllocateCache() const
Allocate a new VdfVector with this spec's type.
TfType GetType() const
Returns the type of this spec.
VDF_API std::string GetTypeName() const
Returns the name of this spec's type.
VDF_API void ResizeCache(VdfVector *vector, const VdfMask::Bits &bits) const
Resize an existing VdfVector to accomodate all the data set in the bits.
const TfToken & GetName() const
Returns the name of this connector.
bool operator==(const VdfOutputSpec &rhs) const
Returns true, if two output specs are equal.
A VdfTypedVector implements a VdfVector with a specific type.
This class is used to abstract away knowledge of the cache data used for each node.
void Resize(size_t size)
Allocates space for size number of elements.
#define TF_MALLOC_TAG_NEW(name1, name2)
Enable lib/tf memory management.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...