7#ifndef PXR_IMAGING_HDX_RENDER_SETUP_TASK_H
8#define PXR_IMAGING_HDX_RENDER_SETUP_TASK_H
11#include "pxr/imaging/hdx/api.h"
12#include "pxr/imaging/hdx/version.h"
13#include "pxr/imaging/hd/task.h"
14#include "pxr/imaging/hd/tokens.h"
15#include "pxr/imaging/hd/enums.h"
16#include "pxr/imaging/hd/renderPassState.h"
18#include "pxr/imaging/cameraUtil/framing.h"
27PXR_NAMESPACE_OPEN_SCOPE
29using HdxRenderSetupTaskSharedPtr =
30 std::shared_ptr<class HdxRenderSetupTask>;
31using HdStRenderPassShaderSharedPtr =
32 std::shared_ptr<class HdStRenderPassShader>;
33using HdStShaderCodeSharedPtr = std::shared_ptr<class HdStShaderCode>;
35using HdRenderPassStateSharedPtr = std::shared_ptr<class HdRenderPassState>;
69 HdRenderPassStateSharedPtr
const &GetRenderPassState()
const {
70 return _renderPassState;
77 HdDirtyBits* dirtyBits)
override;
86 void Execute(HdTaskContext* ctx)
override;
89 HdRenderPassStateSharedPtr _renderPassState;
90 HdStRenderPassShaderSharedPtr _colorRenderPassShader;
91 HdStRenderPassShaderSharedPtr _idRenderPassShader;
94 std::optional<CameraUtilConformWindowPolicy> _overrideWindowPolicy;
98 HdRenderPassAovBindingVector _aovBindings;
99 HdRenderPassAovBindingVector _aovInputBindings;
101 void _SetRenderpassShadersForStorm(
105 HdRenderPassStateSharedPtr &_GetRenderPassState(
HdRenderIndex* renderIndex);
107 void _PrepareAovBindings(HdTaskContext* ctx,
HdRenderIndex* renderIndex);
124 , wireframeColor(0.0)
127 , enableLighting(
false)
128 , enableIdRender(
false)
129 , alphaThreshold(0.0)
130 , enableSceneMaterials(
true)
131 , enableSceneLights(
true)
132 , enableClipping(
true)
134 , maskColor(1.0f, 0.0f, 0.0f, 1.0f)
135 , indicatorColor(0.0f, 1.0f, 0.0f, 1.0f)
136 , pointSelectedSize(3.0)
138 , depthBiasUseDefault(
true)
139 , depthBiasEnable(
false)
140 , depthBiasConstantFactor(0.0f)
141 , depthBiasSlopeFactor(1.0f)
142 , depthFunc(HdCmpFuncLEqual)
143 , depthMaskEnable(
true)
144 , stencilFunc(HdCmpFuncAlways)
147 , stencilFailOp(HdStencilOpKeep)
148 , stencilZFailOp(HdStencilOpKeep)
149 , stencilZPassOp(HdStencilOpKeep)
150 , stencilEnable(
false)
151 , blendColorOp(HdBlendOpAdd)
152 , blendColorSrcFactor(HdBlendFactorOne)
153 , blendColorDstFactor(HdBlendFactorZero)
154 , blendAlphaOp(HdBlendOpAdd)
155 , blendAlphaSrcFactor(HdBlendFactorOne)
156 , blendAlphaDstFactor(HdBlendFactorZero)
157 , blendConstantColor(0.0f, 0.0f, 0.0f, 0.0f)
159 , enableAlphaToCoverage(
true)
160 , useAovMultiSample(
true)
161 , resolveAovMultiSample(
true)
164 , cullStyle(HdCullStyleBackUnlessDoubleSided)
179 float alphaThreshold;
180 bool enableSceneMaterials;
181 bool enableSceneLights;
187 float pointSelectedSize;
192 HdRenderPassAovBindingVector aovBindings;
193 HdRenderPassAovBindingVector aovInputBindings;
199 bool depthBiasUseDefault;
200 bool depthBiasEnable;
201 float depthBiasConstantFactor;
202 float depthBiasSlopeFactor;
204 HdCompareFunction depthFunc;
205 bool depthMaskEnable;
208 HdCompareFunction stencilFunc;
211 HdStencilOp stencilFailOp;
212 HdStencilOp stencilZFailOp;
213 HdStencilOp stencilZPassOp;
217 HdBlendOp blendColorOp;
218 HdBlendFactor blendColorSrcFactor;
219 HdBlendFactor blendColorDstFactor;
220 HdBlendOp blendAlphaOp;
221 HdBlendFactor blendAlphaSrcFactor;
222 HdBlendFactor blendAlphaDstFactor;
227 bool enableAlphaToCoverage;
231 bool useAovMultiSample;
235 bool resolveAovMultiSample;
244 HdCullStyle cullStyle;
245 std::optional<CameraUtilConformWindowPolicy> overrideWindowPolicy;
257PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 4 double components.
Basic type for a vector of 4 float components.
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
Adapter class providing data exchange with the client scene graph.
A set of rendering parameters used among render passes.
A task for setting up render pass state (camera, renderpass shader, GL states).
HDX_API void Sync(HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
Sync the render pass resources.
HDX_API void Prepare(HdTaskContext *ctx, HdRenderIndex *renderIndex) override
Prepare the tasks resources.
HDX_API void Execute(HdTaskContext *ctx) override
Execute render pass task.
A path value used to locate objects in layers or scenegraphs.
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
RenderTask parameters (renderpass state).