Loading...
Searching...
No Matches
HdxRenderTask Class Reference

A task for rendering geometry to pixels. More...

#include <renderTask.h>

+ Inheritance diagram for HdxRenderTask:

Public Member Functions

HDX_API HdxRenderTask (HdSceneDelegate *delegate, SdfPath const &id)
 
HDX_API bool IsConverged () const override
 Hooks for progressive rendering (delegated to renderpasses).
 
HDX_API void Prepare (HdTaskContext *ctx, HdRenderIndex *renderIndex) override
 Prepare the tasks resources.
 
HDX_API void Execute (HdTaskContext *ctx) override
 Execute render pass task.
 
HDX_API const TfTokenVectorGetRenderTags () const override
 Collect Render Tags used by the task.
 
- Public Member Functions inherited from HdxTask
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

HDX_API void _Sync (HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
 Sync the render pass resources.
 
HDX_API HdRenderPassStateSharedPtr _GetRenderPassState (HdTaskContext *ctx) const
 
HDX_API bool _HasDrawItems () const
 
- 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
 

Detailed Description

A task for rendering geometry to pixels.

Rendering state management can be handled two ways: 1.) An application can create an HdxRenderTask and pass it the HdxRenderTaskParams struct as "params". 2.) An application can create an HdxRenderSetupTask and an HdxRenderTask, and pass params to the setup task. In this case the setup task must run first.

Parameter unpacking is handled by HdxRenderSetupTask; in case #1, HdxRenderTask creates a dummy setup task internally to manage the sync process.

Case #2 introduces complexity; the benefit is that by changing which setup task you run before the render task, you can change the render parameters without incurring a hydra sync or rebuilding any resources.

Definition at line 64 of file renderTask.h.

Member Function Documentation

◆ _Sync()

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

Sync the render pass resources.

Implements HdxTask.

◆ Execute()

HDX_API void Execute ( HdTaskContext *  ctx)
override

Execute render pass task.

◆ GetRenderTags()

HDX_API const TfTokenVector & GetRenderTags ( ) const
override

Collect Render Tags used by the task.

◆ IsConverged()

HDX_API bool IsConverged ( ) const
overridevirtual

Hooks for progressive rendering (delegated to renderpasses).

Reimplemented from HdxTask.

◆ Prepare()

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

Prepare the tasks resources.


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