7#ifndef PXR_IMAGING_HD_ST_DRAW_ITEM_H
8#define PXR_IMAGING_HD_ST_DRAW_ITEM_H
11#include "pxr/imaging/hdSt/api.h"
13#include "pxr/imaging/hd/drawItem.h"
15PXR_NAMESPACE_OPEN_SCOPE
18using HdSt_GeometricShaderSharedPtr =
19 std::shared_ptr<class HdSt_GeometricShader>;
20using HdSt_MaterialNetworkShaderSharedPtr =
21 std::shared_ptr<class HdSt_MaterialNetworkShader>;
26 HF_MALLOC_TAG_NEW(
"new HdStDrawItem");
29 HdStDrawItem(HdRprimSharedData
const *sharedData);
32 ~HdStDrawItem()
override;
35 bool HasInstancer()
const {
41 int GetInstancePrimvarNumLevels()
const {
57 HdBufferArrayRangeSharedPtr
const &
58 GetInstancePrimvarRange(
int level)
const {
64 HdBufferArrayRangeSharedPtr
const &GetInstanceIndexRange()
const {
70 HdBufferArrayRangeSharedPtr
const &GetConstantPrimvarRange()
const {
76 HdBufferArrayRangeSharedPtr
const &GetElementPrimvarRange()
const {
82 HdBufferArrayRangeSharedPtr
const &GetVertexPrimvarRange()
const {
88 HdBufferArrayRangeSharedPtr
const &GetVaryingPrimvarRange()
const {
94 HdBufferArrayRangeSharedPtr
const &GetFaceVaryingPrimvarRange()
const {
100 HdBufferArrayRangeSharedPtr
const &GetTopologyRange()
const {
106 HdBufferArrayRangeSharedPtr
const &GetTopologyVisibilityRange()
const {
112 TopologyToPrimvarVector
const &GetFvarTopologyToPrimvarVector()
const {
116 void SetGeometricShader(HdSt_GeometricShaderSharedPtr
const &shader) {
117 _geometricShader = shader;
120 HdSt_GeometricShaderSharedPtr
const &GetGeometricShader()
const {
121 return _geometricShader;
124 HdSt_MaterialNetworkShaderSharedPtr
const &
125 GetMaterialNetworkShader()
const {
126 return _materialNetworkShader;
129 void SetMaterialNetworkShader(
130 HdSt_MaterialNetworkShaderSharedPtr
const &shader) {
131 _materialNetworkShader = shader;
134 bool GetMaterialIsFinal()
const {
135 return _materialIsFinal;
138 void SetMaterialIsFinal(
bool isFinal) {
139 _materialIsFinal = isFinal;
147 bool IntersectsViewVolume(
GfMatrix4d const &viewProjMatrix)
const;
155 size_t GetBufferArraysHash()
const;
162 size_t GetElementOffsetsHash()
const;
165 HdSt_GeometricShaderSharedPtr _geometricShader;
166 HdSt_MaterialNetworkShaderSharedPtr _materialNetworkShader;
167 bool _materialIsFinal;
171PXR_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.