Loading...
Searching...
No Matches
HdxTask Class Referenceabstract

Base class for (some) tasks in Hdx that provides common progressive rendering and Hgi functionality. More...

#include <task.h>

+ Inheritance diagram for HdxTask:

Public Member Functions

HDX_API HdxTask (SdfPath const &id)
 
virtual HDX_API bool IsConverged () const
 This function returns true when a (progressive) task considers its execution results converged.
 
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.
 

Protected Member Functions

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
 

Detailed Description

Base class for (some) tasks in Hdx that provides common progressive rendering and Hgi functionality.

Tasks that require neither progressive rendering nor Hgi can continue to derive directly from HdTask.

Definition at line 44 of file task.h.

Member Function Documentation

◆ _Sync()

virtual void _Sync ( HdSceneDelegate delegate,
HdTaskContext *  ctx,
HdDirtyBits *  dirtyBits 
)
protectedpure virtual

◆ IsConverged()

virtual HDX_API bool IsConverged ( ) const
virtual

This function returns true when a (progressive) task considers its execution results converged.

Usually this means that a progressive render delegate is finished rendering into the HdRenderBuffers used by this task. Returns true by default which is a good default for rasterizers.

Applications with data-driven task lists can determine their convergence state by determining which tasks are HdxTasks and then querying specifically those tasks for IsConverged.

Reimplemented in HdxAovInputTask, HdxColorizeSelectionTask, HdxPickFromRenderBufferTask, and HdxRenderTask.

◆ Sync()

HDX_API void Sync ( HdSceneDelegate delegate,
HdTaskContext *  ctx,
HdDirtyBits *  dirtyBits 
)
finaloverride

We override HdTask::Sync, but make it 'final' to make sure derived classes can't override it and instead override _Sync.

This 'non-virtual interface'-like pattern allows us to ensure we always initialized Hgi during the Sync task so derived classes don't have to.


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