24 #ifndef PXR_IMAGING_HD_ST_RENDER_PASS_STATE_H
25 #define PXR_IMAGING_HD_ST_RENDER_PASS_STATE_H
28 #include "pxr/imaging/hdSt/api.h"
29 #include "pxr/imaging/hd/renderPassState.h"
30 #include "pxr/imaging/hgi/graphicsCmdsDesc.h"
34 PXR_NAMESPACE_OPEN_SCOPE
36 using HdResourceRegistrySharedPtr = std::shared_ptr<class HdResourceRegistry>;
37 using HdStRenderPassStateSharedPtr = std::shared_ptr<class HdStRenderPassState>;
39 using HdBufferArrayRangeSharedPtr = std::shared_ptr<class HdBufferArrayRange>;
41 using HdStShaderCodeSharedPtr = std::shared_ptr<class HdStShaderCode>;
42 using HdStLightingShaderSharedPtr = std::shared_ptr<class HdStLightingShader>;
43 using HdStRenderPassShaderSharedPtr =
44 std::shared_ptr<class HdStRenderPassShader>;
45 using HdSt_FallbackLightingShaderSharedPtr =
46 std::shared_ptr<class HdSt_FallbackLightingShader>;
47 using HdStShaderCodeSharedPtrVector = std::vector<HdStShaderCodeSharedPtr>;
62 HdStRenderPassState(HdStRenderPassShaderSharedPtr
const &shader);
64 ~HdStRenderPassState()
override;
68 Prepare(HdResourceRegistrySharedPtr
const &resourceRegistry)
override;
102 bool GetResolveAovMultiSample()
const;
107 HdStLightingShaderSharedPtr
const & GetLightingShader()
const {
108 return _lightingShader;
114 HdStRenderPassShaderSharedPtr
const &GetRenderPassShader()
const {
115 return _renderPassShader;
121 bool GetUseSceneMaterials()
const {
122 return _useSceneMaterials;
127 HdStShaderCodeSharedPtrVector
GetShaders()
const;
130 size_t GetShaderHash()
const;
139 ClipPlanesVector
const & clipPlanes);
149 bool _UseAlphaMask()
const;
154 HdStRenderPassShaderSharedPtr _renderPassShader;
155 HdSt_FallbackLightingShaderSharedPtr _fallbackLightingShader;
156 HdStLightingShaderSharedPtr _lightingShader;
158 HdBufferArrayRangeSharedPtr _renderPassStateBar;
159 size_t _clipPlanesBufferSize;
160 float _alphaThresholdCurrent;
161 bool _resolveMultiSampleAov;
162 bool _useSceneMaterials;
165 PXR_NAMESPACE_CLOSE_SCOPE
167 #endif // PXR_IMAGING_HD_ST_RENDER_PASS_STATE_H
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
HDST_API HdStShaderCodeSharedPtrVector GetShaders() const
returns shaders (lighting/renderpass)
A set of rendering parameters used among render passes.
Basic type for a vector of 4 double components.
HDST_API void Prepare(HdResourceRegistrySharedPtr const &resourceRegistry) override
Schedule to update renderPassState parameters.
A set of rendering parameters used among render passes.
HD_API void SetResolveAovMultiSample(bool state)
If set to true (default) and the render pass is rendering into a multi-sampled aovs, the aovs will be resolved at the end of the render pass.
HD_API void SetCameraFramingState(GfMatrix4d const &worldToViewMatrix, GfMatrix4d const &projectionMatrix, GfVec4d const &viewport, ClipPlanesVector const &clipPlanes)
Camera setter API Option 1: Specify matrices, viewport and clipping planes (defined in camera space) ...
Stores a 4x4 matrix of double elements.
HDST_API void SetUseSceneMaterials(bool state)
scene materials
Describes the properties to begin a HgiGraphicsCmds.
HDST_API void Bind()
XXX: Bind and Unbind set.
HDST_API void SetRenderPassShader(HdStRenderPassShaderSharedPtr const &renderPassShader)
renderpass shader
HDST_API void SetLightingShader(HdStLightingShaderSharedPtr const &lightingShader)
Set lighting shader.