24#ifndef PXR_IMAGING_HDX_SHADOW_TASK_H
25#define PXR_IMAGING_HDX_SHADOW_TASK_H
28#include "pxr/imaging/hdx/api.h"
29#include "pxr/imaging/hdx/version.h"
30#include "pxr/imaging/hd/enums.h"
31#include "pxr/imaging/hd/task.h"
39PXR_NAMESPACE_OPEN_SCOPE
46using HdStRenderPassShaderSharedPtr =
47 std::shared_ptr<class HdStRenderPassShader>;
48using HdStShaderCodeSharedPtr =
49 std::shared_ptr<class HdStShaderCode>;
51using HdRenderPassSharedPtr = std::shared_ptr<class HdRenderPass>;
52using HdRenderPassSharedPtrVector = std::vector<HdRenderPassSharedPtr>;
53using HdStRenderPassStateSharedPtr = std::shared_ptr<class HdStRenderPassState>;
54using HdStRenderPassStateSharedPtrVector =
55 std::vector<HdStRenderPassStateSharedPtr>;
59struct HdxShadowTaskParams
64 , enableLighting(false)
65 , enableIdRender(false)
66 , enableSceneMaterials(true)
68 , depthBiasEnable(false)
69 , depthBiasConstantFactor(0.0f)
70 , depthBiasSlopeFactor(1.0f)
71 , depthFunc(HdCmpFuncLEqual)
72 , cullStyle(HdCullStyleBackUnlessDoubleSided)
80 bool enableSceneMaterials;
83 float depthBiasConstantFactor;
84 float depthBiasSlopeFactor;
85 HdCompareFunction depthFunc;
86 HdCullStyle cullStyle;
106 HdDirtyBits* dirtyBits)
override;
123 void _UpdateDirtyParams(HdStRenderPassStateSharedPtr &renderPassState,
124 HdxShadowTaskParams
const ¶ms);
126 HdRenderPassSharedPtrVector _passes;
127 HdStRenderPassStateSharedPtrVector _renderPassStates;
128 HdxShadowTaskParams _params;
139std::ostream&
operator<<(std::ostream& out,
const HdxShadowTaskParams& pv);
141bool operator==(
const HdxShadowTaskParams& lhs,
const HdxShadowTaskParams& rhs);
143bool operator!=(
const HdxShadowTaskParams& lhs,
const HdxShadowTaskParams& rhs);
146PXR_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.
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.