Loading...
Searching...
No Matches
HdxPresentTask Class Reference

A task for taking the final result of the aovs and compositing it over the currently bound framebuffer. More...

#include <presentTask.h>

+ Inheritance diagram for HdxPresentTask:

Public Types

using TaskParams = HdxPresentTaskParams
 

Public Member Functions

HDX_API HdxPresentTask (HdSceneDelegate *delegate, SdfPath const &id)
 
HDX_API void Prepare (HdTaskContext *ctx, HdRenderIndex *renderIndex) override
 Prepare Phase: Resolve bindings and manage resources.
 
HDX_API void Execute (HdTaskContext *ctx) override
 Execute Phase: Runs the task.
 
- Public Member Functions inherited from HdxTask
HDX_API HdxTask (SdfPath const &id)
 
HDX_API void Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override final
 We override HdTask::Sync, but make it 'final' to make sure derived classes can't override it and instead override _Sync.
 
- Public Member Functions inherited from HdTask
HD_API HdTask (SdfPath const &id)
 Construct a new task.
 
virtual HD_API bool IsConverged () const
 This function returns true when a (progressive) task considers its execution results converged.
 
virtual void Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits)=0
 Sync Phase: Obtain task state from Scene delegate based on change processing.
 
virtual void Prepare (HdTaskContext *ctx, HdRenderIndex *renderIndex)=0
 Prepare Phase: Resolve bindings and manage resources.
 
virtual void Execute (HdTaskContext *ctx)=0
 Execute Phase: Runs the task.
 
virtual HD_API const TfTokenVectorGetRenderTags () const
 Render Tag Gather.
 
SdfPath const & GetId () const
 
virtual HD_API HdDirtyBits GetInitialDirtyBitsMask () const
 Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of this prim.
 

Static Public Member Functions

static HDX_API bool IsFormatSupported (HgiFormat aovFormat)
 
- Static Public Member Functions inherited from HdxTask
static HDX_API bool AreTasksConverged (HdRenderIndex *const renderIndex, const SdfPathVector &taskPaths)
 Are all tasks at taskPaths in the render index converged?
 

Protected Member Functions

HDX_API void _Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
 
- Protected Member Functions inherited from HdxTask
virtual void _Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits)=0
 
HDX_API void _ToggleRenderTarget (HdTaskContext *ctx)
 
HDX_API void _ToggleDepthTarget (HdTaskContext *ctx)
 
HDX_API void _SwapTextures (HdTaskContext *ctx, const TfToken &textureToken, const TfToken &textureIntermediateToken)
 
HDX_API Hgi_GetHgi () const
 
- Protected Member Functions inherited from HdTask
template<class T >
bool _GetTaskParams (HdSceneDelegate *delegate, T *outValue)
 Extracts a typed value out of the task context at the given id.
 
HD_API TfTokenVector _GetTaskRenderTags (HdSceneDelegate *delegate)
 

Additional Inherited Members

- Static Protected Member Functions inherited from HdTask
static HD_API bool _HasTaskContextData (HdTaskContext const *ctx, TfToken const &id)
 Check if the shared context contains a value for the given id.
 
template<class T >
static bool _GetTaskContextData (HdTaskContext const *ctx, TfToken const &id, T *outValue)
 Extracts a typed value out of the task context at the given id.
 
template<class T >
static T _GetDriver (HdTaskContext const *ctx, TfToken const &driverName)
 Extract an object from a HdDriver inside the task context.
 

Detailed Description

A task for taking the final result of the aovs and compositing it over the currently bound framebuffer.

This task uses the 'color' and optionally 'depth' aov's in the task context. The 'color' aov is expected to use non-integer (i.e., float or norm) types to keep the interop step simple.

Definition at line 61 of file presentTask.h.

Member Typedef Documentation

◆ TaskParams

Definition at line 64 of file presentTask.h.

Member Function Documentation

◆ _Sync()

HDX_API void _Sync ( HdSceneDelegate delegate,
HdTaskContext *  ctx,
HdDirtyBits *  dirtyBits 
)
overrideprotectedvirtual

Implements HdxTask.

◆ Execute()

HDX_API void Execute ( HdTaskContext *  ctx)
overridevirtual

Execute Phase: Runs the task.

The execution phase should trigger render delegate processing, such as issuing draw commands.

Task execution is non-parallel and ordered.

The task context is the same as used by the prepare step and is used for inter-task communication.

Implements HdTask.

◆ Prepare()

HDX_API void Prepare ( HdTaskContext *  ctx,
HdRenderIndex renderIndex 
)
overridevirtual

Prepare Phase: Resolve bindings and manage resources.

The Prepare phase happens before the Data Commit phase. All tasks in the task list get called for every execute. At this time all Tasks and other prims have completed the phase synced.

This is an opportunity for the task to pull data from other prims (such as a camera prim) by querying the render index.

The task can also use the phase to create, register and update temporary resources with the resource registry or other render delegate specific mechanism.

Tasks are always "Prepared" in execution order.

Inter-task communication is achievable via the task context. The same task context is used for the prepare and execution phases. Data in the task context isn't guaranteed to persist across calls to HdEngine::Execute().

Implements HdTask.


The documentation for this class was generated from the following file: