HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
oitVolumeRenderTask.h
Go to the documentation of this file.
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_VOLUME_RENDER_TASK_H
8 #define PXR_IMAGING_HDX_OIT_VOLUME_RENDER_TASK_H
9 
10 #include "pxr/pxr.h"
11 #include "pxr/imaging/hdx/api.h"
14 
16 
18 
19 /// \class HdxOitVolumeRenderTask
20 ///
21 /// A task for rendering transparent geometry into OIT buffers.
22 /// Its companion task, OITResolveTask, will blend the buffers to screen.
23 ///
25 {
26 public:
27  HDX_API
28  HdxOitVolumeRenderTask(HdSceneDelegate* delegate, SdfPath const& id);
29 
30  HDX_API
31  ~HdxOitVolumeRenderTask() override;
32 
33  /// Prepare the tasks resources
34  HDX_API
35  void Prepare(HdTaskContext* ctx,
36  HdRenderIndex* renderIndex) override;
37 
38  /// Execute render pass task
39  HDX_API
40  void Execute(HdTaskContext* ctx) override;
41 
42 protected:
43  /// Sync the render pass resources
44  HDX_API
45  void _Sync(HdSceneDelegate* delegate,
46  HdTaskContext* ctx,
47  HdDirtyBits* dirtyBits) override;
48 
49 private:
50  HdxOitVolumeRenderTask() = delete;
51  HdxOitVolumeRenderTask(const HdxOitVolumeRenderTask &) = delete;
52  HdxOitVolumeRenderTask &operator =(const HdxOitVolumeRenderTask &) = delete;
53 
54  HdStRenderPassShaderSharedPtr _oitVolumeRenderPassShader;
55  const bool _isOitEnabled;
56 };
57 
58 
60 
61 #endif //PXR_IMAGING_HDX_OIT_VOLUME_RENDER_TASK_H
HDX_API void Execute(HdTaskContext *ctx) override
Execute render pass task.
uint32_t HdDirtyBits
Definition: types.h:143
#define HDX_API
Definition: api.h:23
HDX_API ~HdxOitVolumeRenderTask() override
Definition: path.h:273
HDX_API void Prepare(HdTaskContext *ctx, HdRenderIndex *renderIndex) override
Prepare the tasks resources.
std::unordered_map< TfToken, VtValue, TfToken::HashFunctor > HdTaskContext
Definition: renderIndex.h:61
std::shared_ptr< class HdStRenderPassShader > HdStRenderPassShaderSharedPtr
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1425
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
HDX_API void _Sync(HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
Sync the render pass resources.