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)
 
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 AreTasksConverged (HdRenderIndex *const renderIndex, const SdfPathVector &taskPaths)
 Are all tasks at taskPaths in the render index converged?
 

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
 
- 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

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 27 of file task.h.

Member Function Documentation

◆ _Sync()

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

◆ AreTasksConverged()

static HDX_API bool AreTasksConverged ( HdRenderIndex *const  renderIndex,
const SdfPathVector &  taskPaths 
)
static

Are all tasks at taskPaths in the render index converged?

◆ Sync()

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

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.

Implements HdTask.


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