24#ifndef PXR_IMAGING_HD_ST_DRAW_ITEM_H
25#define PXR_IMAGING_HD_ST_DRAW_ITEM_H
28#include "pxr/imaging/hdSt/api.h"
30#include "pxr/imaging/hd/drawItem.h"
32PXR_NAMESPACE_OPEN_SCOPE
35using HdSt_GeometricShaderSharedPtr =
36 std::shared_ptr<class HdSt_GeometricShader>;
37using HdSt_MaterialNetworkShaderSharedPtr =
38 std::shared_ptr<class HdSt_MaterialNetworkShader>;
43 HF_MALLOC_TAG_NEW(
"new HdStDrawItem");
46 HdStDrawItem(HdRprimSharedData
const *sharedData);
49 ~HdStDrawItem()
override;
52 bool HasInstancer()
const {
58 int GetInstancePrimvarNumLevels()
const {
74 HdBufferArrayRangeSharedPtr
const &
75 GetInstancePrimvarRange(
int level)
const {
81 HdBufferArrayRangeSharedPtr
const &GetInstanceIndexRange()
const {
87 HdBufferArrayRangeSharedPtr
const &GetConstantPrimvarRange()
const {
93 HdBufferArrayRangeSharedPtr
const &GetElementPrimvarRange()
const {
99 HdBufferArrayRangeSharedPtr
const &GetVertexPrimvarRange()
const {
105 HdBufferArrayRangeSharedPtr
const &GetVaryingPrimvarRange()
const {
111 HdBufferArrayRangeSharedPtr
const &GetFaceVaryingPrimvarRange()
const {
117 HdBufferArrayRangeSharedPtr
const &GetTopologyRange()
const {
123 HdBufferArrayRangeSharedPtr
const &GetTopologyVisibilityRange()
const {
129 TopologyToPrimvarVector
const &GetFvarTopologyToPrimvarVector()
const {
133 void SetGeometricShader(HdSt_GeometricShaderSharedPtr
const &shader) {
134 _geometricShader = shader;
137 HdSt_GeometricShaderSharedPtr
const &GetGeometricShader()
const {
138 return _geometricShader;
141 HdSt_MaterialNetworkShaderSharedPtr
const &
142 GetMaterialNetworkShader()
const {
143 return _materialNetworkShader;
146 void SetMaterialNetworkShader(
147 HdSt_MaterialNetworkShaderSharedPtr
const &shader) {
148 _materialNetworkShader = shader;
151 bool GetMaterialIsFinal()
const {
152 return _materialIsFinal;
155 void SetMaterialIsFinal(
bool isFinal) {
156 _materialIsFinal = isFinal;
164 bool IntersectsViewVolume(
GfMatrix4d const &viewProjMatrix)
const;
172 size_t GetBufferArraysHash()
const;
179 size_t GetElementOffsetsHash()
const;
182 HdSt_GeometricShaderSharedPtr _geometricShader;
183 HdSt_MaterialNetworkShaderSharedPtr _materialNetworkShader;
184 bool _materialIsFinal;
188PXR_NAMESPACE_CLOSE_SCOPE
Stores a 4x4 matrix of double elements.
A draw item is a light-weight representation of an HdRprim's resources and material to be used for re...
HdRprimSharedData const * _GetSharedData() const
Returns the shared data.
HdDrawingCoord const & _GetDrawingCoord() const
Returns the drawingCoord.
#define TF_VERIFY(cond, format,...)
Checks a condition and reports an error if it evaluates false.