HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdxTask Class Referenceabstract

#include <task.h>

+ Inheritance diagram for HdxTask:

Public Member Functions

HDX_API HdxTask (SdfPath const &id)
 
HDX_API ~HdxTask () override
 
virtual HDX_API bool IsConverged () const
 
HDX_API void Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) overridefinal
 
- Public Member Functions inherited from HdTask
HD_API HdTask (SdfPath const &id)
 
virtual HD_API ~HdTask ()
 
virtual void Prepare (HdTaskContext *ctx, HdRenderIndex *renderIndex)=0
 
virtual void Execute (HdTaskContext *ctx)=0
 
virtual HD_API const
TfTokenVector
GetRenderTags () const
 
SdfPath constGetId () const
 
virtual HD_API HdDirtyBits GetInitialDirtyBitsMask () const
 

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)
 
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. More...
 
template<class T >
static bool _GetTaskContextData (HdTaskContext const *ctx, TfToken const &id, T *outValue)
 
template<class T >
static T _GetDriver (HdTaskContext const *ctx, TfToken const &driverName)
 

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.

Constructor & Destructor Documentation

HDX_API HdxTask::HdxTask ( SdfPath const id)
HDX_API HdxTask::~HdxTask ( )
override

Member Function Documentation

HDX_API Hgi* HdxTask::_GetHgi ( ) const
protected
HDX_API void HdxTask::_SwapTextures ( HdTaskContext ctx,
const TfToken textureToken,
const TfToken textureIntermediateToken 
)
protected
HDX_API void HdxTask::_ToggleDepthTarget ( HdTaskContext ctx)
protected
HDX_API void HdxTask::_ToggleRenderTarget ( HdTaskContext ctx)
protected
virtual HDX_API bool HdxTask::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 HdxPickFromRenderBufferTask, HdxColorizeSelectionTask, HdxRenderTask, and HdxAovInputTask.

HDX_API void HdxTask::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: