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 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.
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.
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
std::vector< TfToken > TfTokenVector
Convenience types.