24 #ifndef PXR_IMAGING_HDX_OIT_RESOLVE_TASK_H
25 #define PXR_IMAGING_HDX_OIT_RESOLVE_TASK_H
28 #include "pxr/imaging/hdx/api.h"
29 #include "pxr/imaging/hdx/version.h"
30 #include "pxr/imaging/hd/task.h"
34 PXR_NAMESPACE_OPEN_SCOPE
39 using HdStRenderPassStateSharedPtr = std::shared_ptr<class HdStRenderPassState>;
41 using HdRenderPassSharedPtr = std::shared_ptr<class HdRenderPass>;
42 using HdStRenderPassShaderSharedPtr =
43 std::shared_ptr<class HdStRenderPassShader>;
58 static bool IsOitEnabled();
64 ~HdxOitResolveTask()
override;
70 HdDirtyBits* dirtyBits)
override;
76 void Prepare(HdTaskContext* ctx,
83 void Execute(HdTaskContext* ctx)
override;
86 HdxOitResolveTask() =
delete;
87 HdxOitResolveTask(
const HdxOitResolveTask &) =
delete;
88 HdxOitResolveTask &operator =(
const HdxOitResolveTask &) =
delete;
90 void _PrepareOitBuffers(
99 const HdRenderPassAovBindingVector &_GetAovBindings(
100 HdTaskContext *ctx)
const;
102 HdRenderPassSharedPtr _renderPass;
103 HdStRenderPassStateSharedPtr _renderPassState;
104 HdStRenderPassShaderSharedPtr _renderPassShader;
107 HdBufferArrayRangeSharedPtr _counterBar;
108 HdBufferArrayRangeSharedPtr _dataBar;
109 HdBufferArrayRangeSharedPtr _depthBar;
110 HdBufferArrayRangeSharedPtr _indexBar;
111 HdBufferArrayRangeSharedPtr _uniformBar;
114 PXR_NAMESPACE_CLOSE_SCOPE
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
Basic type for a vector of 2 int components.
Adapter class providing data exchange with the client scene graph.
HDX_API void Sync(HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
Sync the resolve pass resources.
A path value used to locate objects in layers or scenegraphs.
HDX_API void Execute(HdTaskContext *ctx) override
Execute render pass task.
A task for resolving previous passes to pixels.
HDX_API void Prepare(HdTaskContext *ctx, HdRenderIndex *renderIndex) override
Prepare the tasks resources.