24 #ifndef PXR_IMAGING_HD_SCENE_DELEGATE_H
25 #define PXR_IMAGING_HD_SCENE_DELEGATE_H
42 #include "pxr/base/vt/array.h"
107 bool flatShading =
false,
108 bool displacement =
true)
113 if (refineLevel_ < 0) {
115 }
else if (refineLevel_ > 8) {
129 return !(*
this == rhs);
149 TfToken const& role_=HdPrimvarRoleTokens->none)
157 return !(*
this == rhs);
182 SdfPath const & sourceComputationId_,
183 TfToken const & sourceComputationOutputName_,
197 return !(*
this == rhs);
201 typedef std::vector<HdExtComputationPrimvarDescriptor>
220 SdfPath const & sourceComputationId_,
221 TfToken const & sourceComputationOutputName_)
232 return !(*
this == rhs);
236 typedef std::vector<HdExtComputationInputDescriptor>
261 return !(*
this == rhs);
265 typedef std::vector<HdExtComputationOutputDescriptor>
280 TfToken const & fieldPrimType_,
286 typedef std::vector<HdVolumeFieldDescriptor>
403 virtual std::vector<VtArray<TfToken>>
424 size_t maxSampleCount,
431 template <
unsigned int CAPACITY>
435 size_t authoredSamples =
437 if (authoredSamples > CAPACITY) {
438 sa->
Resize(authoredSamples);
439 size_t authoredSamplesSecondAttempt =
447 TF_VERIFY(authoredSamples == authoredSamplesSecondAttempt);
449 sa->
count = authoredSamples;
462 size_t maxSampleCount,
470 template <
unsigned int CAPACITY>
474 size_t authoredSamples =
480 if (authoredSamples > CAPACITY) {
481 sa->
Resize(authoredSamples);
482 size_t authoredSamplesSecondAttempt =
490 TF_VERIFY(authoredSamples == authoredSamplesSecondAttempt);
492 sa->
count = authoredSamples;
516 size_t maxSampleCount,
523 template <
unsigned int CAPACITY>
528 size_t authoredSamples =
535 if (authoredSamples > CAPACITY) {
536 sa->
Resize(authoredSamples);
537 size_t authoredSamplesSecondAttempt =
546 TF_VERIFY(authoredSamples == authoredSamplesSecondAttempt);
548 sa->
count = authoredSamples;
737 HdSceneDelegate() =
delete;
738 HdSceneDelegate(HdSceneDelegate &) =
delete;
739 HdSceneDelegate &operator=(HdSceneDelegate &) =
delete;
745 #endif //PXR_IMAGING_HD_SCENE_DELEGATE_H
std::shared_ptr< SdfPathVector > HdIdVectorSharedPtr
A shared pointer to a vector of id's.
void SampleInstancerTransform(SdfPath const &instancerId, HdTimeSampleArray< GfMatrix4d, CAPACITY > *sa)
virtual HD_API VtValue GetExtComputationInput(SdfPath const &computationId, TfToken const &input)
vint4 max(const vint4 &a, const vint4 &b)
virtual HD_API SdfPath GetScenePrimPath(SdfPath const &rprimId, int instanceIndex, HdInstancerContext *instancerContext=nullptr)
bool operator==(HdExtComputationOutputDescriptor const &rhs) const
virtual HD_API size_t SamplePrimvar(SdfPath const &id, TfToken const &key, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues)
GLenum GLenum GLenum input
std::shared_ptr< class HdTextureResource > HdTextureResourceSharedPtr
virtual HD_API void PostSyncCleanup()
GLuint const GLchar * name
virtual HD_API void InvokeExtComputation(SdfPath const &computationId, HdExtComputationContext *context)
TfSmallVector< float, CAPACITY > times
virtual HD_API bool GetVisible(SdfPath const &id)
Returns the authored visible state of the prim.
HdVolumeFieldDescriptor()
HdExtComputationPrimvarDescriptor()
bool operator!=(HdPrimvarDescriptor const &rhs) const
TfToken sourceComputationOutputName
~HdDisplayStyle()=default
bool operator!=(HdExtComputationPrimvarDescriptor const &rhs) const
std::vector< HdExtComputationInputDescriptor > HdExtComputationInputDescriptorVector
virtual HD_API HdVolumeFieldDescriptorVector GetVolumeFieldDescriptors(SdfPath const &volumeId)
virtual HD_API HdExtComputationInputDescriptorVector GetExtComputationInputDescriptors(SdfPath const &computationId)
bool operator!=(HdExtComputationOutputDescriptor const &rhs) const
virtual HD_API std::string GetExtComputationKernel(SdfPath const &computationId)
virtual HD_API bool IsEnabled(TfToken const &option) const
Returns true if the named option is enabled by the delegate.
HdVolumeFieldDescriptor(TfToken const &fieldName_, TfToken const &fieldPrimType_, SdfPath const &fieldId_)
int refineLevel
The prim refine level, in the range [0, 8].
std::vector< HdExtComputationOutputDescriptor > HdExtComputationOutputDescriptorVector
virtual HD_API GfMatrix4d GetInstancerTransform(SdfPath const &instancerId)
Returns the instancer transform.
virtual HD_API HdBasisCurvesTopology GetBasisCurvesTopology(SdfPath const &id)
Gets the topological curve data for a given prim.
virtual HD_API PxOsdSubdivTags GetSubdivTags(SdfPath const &id)
Gets the subdivision surface tags (sharpness, holes, etc).
virtual HD_API HdIdVectorSharedPtr GetCoordSysBindings(SdfPath const &id)
Returns the coordinate system bindings, or a nullptr if none are bound.
HdExtComputationPrimvarDescriptor(TfToken const &name_, HdInterpolation interp_, TfToken const &role_, SdfPath const &sourceComputationId_, TfToken const &sourceComputationOutputName_, HdTupleType const &valueType_)
std::vector< std::pair< SdfPath, int > > HdInstancerContext
Instancer context: a pair of instancer paths and instance indices.
virtual HD_API VtValue GetMaterialResource(SdfPath const &materialId)
Returns the material ID bound to the rprim rprimId.
virtual HD_API HdDisplayStyle GetDisplayStyle(SdfPath const &id)
virtual HD_API VtArray< TfToken > GetCategories(SdfPath const &id)
Returns the prim categories.
HdInterpolation interpolation
Interpolation (data-sampling rate) of the primvar.
void SamplePrimvar(SdfPath const &id, TfToken const &key, HdTimeSampleArray< VtValue, CAPACITY > *sa)
void Resize(unsigned int newSize)
Resize the internal buffers.
virtual HD_API VtValue GetLightParamValue(SdfPath const &id, TfToken const ¶mName)
virtual HD_API HdTextureResourceSharedPtr GetTextureResource(SdfPath const &textureId)
Returns the texture resource for a given texture ID.
TfToken name
Name of the primvar.
HdRenderIndex & GetRenderIndex()
Returns the RenderIndex owned by this delegate.
bool operator==(HdDisplayStyle const &rhs) const
virtual HD_API HdPrimvarDescriptorVector GetPrimvarDescriptors(SdfPath const &id, HdInterpolation interpolation)
Returns descriptors for all primvars of the given interpolation type.
virtual HD_API GfMatrix4d GetTransform(SdfPath const &id)
Returns the object space transform, including all parent transforms.
std::vector< TfToken > TfTokenVector
Convenience types.
bool displacementEnabled
Is the prim displacement shaded.
virtual HD_API GfRange3d GetExtent(SdfPath const &id)
std::vector< HdDirtyBits > dirtyBits
virtual HD_API TfToken GetRenderTag(SdfPath const &id)
HdPrimvarDescriptor(TfToken const &name_, HdInterpolation interp_, TfToken const &role_=HdPrimvarRoleTokens->none)
bool operator==(HdExtComputationPrimvarDescriptor const &rhs) const
virtual HD_API size_t SampleTransform(SdfPath const &id, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues)
std::vector< HdVolumeFieldDescriptor > HdVolumeFieldDescriptorVector
std::vector< class SdfPath > SdfPathVector
A vector of SdfPaths.
TfSmallVector< TYPE, CAPACITY > values
virtual HD_API SdfPath GetMaterialId(SdfPath const &rprimId)
Returns the material ID bound to the rprim rprimId.
SdfPath const & GetDelegateID() const
GLsizei const GLchar *const * string
virtual HD_API void Sync(HdSyncRequestVector *request)
Synchronizes the delegate state for the given request vector.
virtual HD_API VtValue Get(SdfPath const &id, TfToken const &key)
Returns a named value.
virtual HD_API VtValue GetCameraParamValue(SdfPath const &cameraId, TfToken const ¶mName)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
HdExtComputationOutputDescriptor()
bool operator!=(HdDisplayStyle const &rhs) const
bool flatShadingEnabled
Is the prim flat shaded.
HdDisplayStyle(int refineLevel_, bool flatShading=false, bool displacement=true)
virtual HD_API HdMeshTopology GetMeshTopology(SdfPath const &id)
Gets the topological mesh data for a given prim.
virtual HD_API ~HdSceneDelegate()
virtual HD_API HdTextureResource::ID GetTextureResourceID(SdfPath const &textureId)
Returns the texture resource ID for a given texture ID.
HdExtComputationOutputDescriptor(TfToken const &name_, HdTupleType const &valueType_)
virtual HD_API TfTokenVector GetExtComputationSceneInputNames(SdfPath const &computationId)
virtual HD_API TfTokenVector GetTaskRenderTags(SdfPath const &taskId)
virtual HD_API HdReprSelector GetReprSelector(SdfPath const &id)
Returns the authored repr (if any) for the given prim.
#define PXR_NAMESPACE_CLOSE_SCOPE
virtual HD_API size_t SampleInstancerTransform(SdfPath const &instancerId, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues)
virtual HD_API std::vector< VtArray< TfToken > > GetInstanceCategories(SdfPath const &instancerId)
Returns the categories for all instances in the instancer.
virtual HD_API HdCullStyle GetCullStyle(SdfPath const &id)
Returns the cullstyle for the given prim.
void SampleTransform(SdfPath const &id, HdTimeSampleArray< GfMatrix4d, CAPACITY > *sa)
virtual HD_API HdRenderBufferDescriptor GetRenderBufferDescriptor(SdfPath const &id)
Returns the allocation descriptor for a given render buffer prim.
virtual HD_API HdExtComputationPrimvarDescriptorVector GetExtComputationPrimvarDescriptors(SdfPath const &id, HdInterpolation interpolationMode)
virtual HD_API VtValue GetShadingStyle(SdfPath const &id)
Returns the shading style for the given prim.
std::vector< HdPrimvarDescriptor > HdPrimvarDescriptorVector
bool operator==(HdPrimvarDescriptor const &rhs) const
virtual HD_API HdExtComputationOutputDescriptorVector GetExtComputationOutputDescriptors(SdfPath const &computationId)
virtual HD_API VtIntArray GetInstanceIndices(SdfPath const &instancerId, SdfPath const &prototypeId)
SdfPath sourceComputationId
virtual HD_API bool GetDoubleSided(SdfPath const &id)
Returns the doubleSided state for the given prim.
std::vector< HdExtComputationPrimvarDescriptor > HdExtComputationPrimvarDescriptorVector