Loading...
Searching...
No Matches
oitRenderTask.h
1//
2// Copyright 2019 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_IMAGING_HDX_OIT_RENDER_TASK_H
8#define PXR_IMAGING_HDX_OIT_RENDER_TASK_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/hdx/api.h"
12#include "pxr/imaging/hdx/version.h"
13#include "pxr/imaging/hdx/renderTask.h"
14
15#include <memory>
16
17PXR_NAMESPACE_OPEN_SCOPE
18
19using HdStRenderPassShaderSharedPtr = std::shared_ptr<HdStRenderPassShader>;
20
27{
28public:
29 HDX_API
30 HdxOitRenderTask(HdSceneDelegate* delegate, SdfPath const& id);
31
32 HDX_API
33 ~HdxOitRenderTask() override;
34
35 HDX_API
36 bool IsConverged() const override;
37
39 HDX_API
40 void Prepare(HdTaskContext* ctx,
41 HdRenderIndex* renderIndex) override;
42
44 HDX_API
45 void Execute(HdTaskContext* ctx) override;
46
47protected:
49 HDX_API
50 void _Sync(HdSceneDelegate* delegate,
51 HdTaskContext* ctx,
52 HdDirtyBits* dirtyBits) override;
53
54private:
55 HdxOitRenderTask() = delete;
56 HdxOitRenderTask(const HdxOitRenderTask &) = delete;
57 HdxOitRenderTask &operator =(const HdxOitRenderTask &) = delete;
58
59 HdStRenderPassShaderSharedPtr _translucentPassShader;
60 HdStRenderPassShaderSharedPtr _opaquePassShader;
61 const bool _isOitEnabled;
62 HdRenderPassStateSharedPtr _translucentPassState;
63 HdRenderPassSharedPtr _translucentPass;
64};
65
66
67PXR_NAMESPACE_CLOSE_SCOPE
68
69#endif //PXR_IMAGING_HDX_OIT_RENDER_TASK_H
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 task for rendering transparent geometry into OIT buffers.
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.
HDX_API bool IsConverged() const override
This function returns true when a (progressive) task considers its execution results converged.
A task for rendering geometry to pixels.
Definition renderTask.h:49
A path value used to locate objects in layers or scenegraphs.
Definition path.h:281