7#ifndef PXR_IMAGING_HDX_SHADOW_TASK_H
8#define PXR_IMAGING_HDX_SHADOW_TASK_H
11#include "pxr/imaging/hdx/api.h"
12#include "pxr/imaging/hdx/version.h"
13#include "pxr/imaging/hd/enums.h"
14#include "pxr/imaging/hd/task.h"
22PXR_NAMESPACE_OPEN_SCOPE
29using HdStRenderPassShaderSharedPtr =
30 std::shared_ptr<class HdStRenderPassShader>;
31using HdStShaderCodeSharedPtr =
32 std::shared_ptr<class HdStShaderCode>;
34using HdRenderPassSharedPtr = std::shared_ptr<class HdRenderPass>;
35using HdRenderPassSharedPtrVector = std::vector<HdRenderPassSharedPtr>;
36using HdStRenderPassStateSharedPtr = std::shared_ptr<class HdStRenderPassState>;
37using HdStRenderPassStateSharedPtrVector =
38 std::vector<HdStRenderPassStateSharedPtr>;
42struct HdxShadowTaskParams
47 , enableLighting(false)
49 , depthBiasEnable(false)
50 , depthBiasConstantFactor(0.0f)
51 , depthBiasSlopeFactor(1.0f)
52 , depthFunc(HdCmpFuncLEqual)
53 , cullStyle(HdCullStyleBackUnlessDoubleSided)
62 float depthBiasConstantFactor;
63 float depthBiasSlopeFactor;
64 HdCompareFunction depthFunc;
65 HdCullStyle cullStyle;
75 using TaskParams = HdxShadowTaskParams;
87 HdDirtyBits* dirtyBits)
override;
96 void Execute(HdTaskContext* ctx)
override;
104 void _UpdateDirtyParams(HdStRenderPassStateSharedPtr &renderPassState,
105 HdxShadowTaskParams
const ¶ms);
107 HdRenderPassSharedPtrVector _passes;
108 HdStRenderPassStateSharedPtrVector _renderPassStates;
109 HdxShadowTaskParams _params;
120std::ostream& operator<<(std::ostream& out,
const HdxShadowTaskParams& pv);
122bool operator==(
const HdxShadowTaskParams& lhs,
const HdxShadowTaskParams& rhs);
124bool operator!=(
const HdxShadowTaskParams& lhs,
const HdxShadowTaskParams& rhs);
127PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 4 float components.
The render index is part of the Hydra 1.0 API and is only used for emulation purposes so that HdScene...
Adapter class providing data exchange with the client scene graph.
A set of rendering parameters used among render passes.
HdTask represents a unit of work to perform during a Hydra render.
A task for generating shadow maps.
HDX_API const TfTokenVector & GetRenderTags() const override
Collect Render Tags used by the task.
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.
Standard pointer typedefs.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
std::vector< TfToken > TfTokenVector
Convenience types.