![]() |
|
Base class for (some) tasks in Hdx that provides common progressive rendering and Hgi functionality. More...
#include <task.h>
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 |
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.
|
protectedpure virtual |
|
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.
|
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.