ezEngine Release 26.9
Loading...
Searching...
No Matches
ezRenderPipelinePass Class Reference
Inheritance diagram for ezRenderPipelinePass:

Public Member Functions

 ezRenderPipelinePass (const char *szName, bool bIsStereoAware=false)
 
void SetName (const char *szName)
 Sets the name of the pass.
 
const char * GetName () const
 returns the name of the pass.
 
EZ_ALWAYS_INLINE bool IsStereoAware () const
 True if the render pipeline pass can handle stereo cameras correctly.
 
virtual void ReadBackProperties (ezView *pView)
 Allows for the pass to write data back using ezView::SetRenderPassReadBackProperty. E.g. picking results etc.
 
virtual ezResult Serialize (ezStreamWriter &inout_stream) const
 
virtual ezResult Deserialize (ezStreamReader &inout_stream)
 
void DeclareRendererDependenciesForCategory (ezRenderData::Category category, ezRenderGraph &ref_graph, ezRenderGraphPassBuilder &ref_passBuilder)
 
void RenderDataWithCategory (const ezRenderViewContext &renderViewContext, ezRenderData::Category category)
 
EZ_ALWAYS_INLINE ezRenderPipelineGetPipeline ()
 
EZ_ALWAYS_INLINE const ezRenderPipelineGetPipeline () const
 
New Render Graph Interface
virtual ezStatus AddRenderPasses (const ezViewData &viewData, const ezCamera &camera, ezRenderGraph &ref_graph, const ezArrayPtr< const ezRenderPipelinePinConnection > inputs, ezArrayPtr< ezRenderPipelinePinConnection > outputs)
 Called by the render pipeline when this pass is active. The pass declares its render-graph passes and writes the resulting transient handles into the outputs array.
 
virtual ezStatus AddRenderPassesInactive (const ezViewData &viewData, const ezCamera &camera, ezRenderGraph &ref_graph, const ezArrayPtr< const ezRenderPipelinePinConnection > inputs, ezArrayPtr< ezRenderPipelinePinConnection > outputs)
 Called by the render pipeline when this pass is inactive instead of AddRenderPasses. The default implementation does nothing; passes that produce outputs must override this and at minimum write the same output handles they would in AddRenderPasses (typically by adding a clear pass) so downstream passes still see a valid resource.
 
virtual ezGALTextureHandle QueryTextureProvider (const ezRenderPipelineNodePin *pPin, const ezGALTextureCreationDescription &desc)
 
- Public Member Functions inherited from ezRenderPipelineNode
void InitializePins ()
 
ezHashedString GetPinName (const ezRenderPipelineNodePin *pPin) const
 
const ezRenderPipelineNodePinGetPinByName (ezTempHashedString sName) const
 
const ezArrayPtr< const ezRenderPipelineNodePin *const > GetInputPins () const
 
const ezArrayPtr< const ezRenderPipelineNodePin *const > GetOutputPins () const
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Protected Member Functions

void SetReadBackProperty (ezView *pView, ezStringView sPropertyName, const ezVariant &value)
 

Friends

class ezRenderPipeline
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Member Function Documentation

◆ AddRenderPasses()

virtual ezStatus ezRenderPipelinePass::AddRenderPasses ( const ezViewData viewData,
const ezCamera camera,
ezRenderGraph ref_graph,
const ezArrayPtr< const ezRenderPipelinePinConnection inputs,
ezArrayPtr< ezRenderPipelinePinConnection outputs 
)
inlinevirtual

◆ AddRenderPassesInactive()

virtual ezStatus ezRenderPipelinePass::AddRenderPassesInactive ( const ezViewData viewData,
const ezCamera camera,
ezRenderGraph ref_graph,
const ezArrayPtr< const ezRenderPipelinePinConnection inputs,
ezArrayPtr< ezRenderPipelinePinConnection outputs 
)
inlinevirtual

Called by the render pipeline when this pass is inactive instead of AddRenderPasses. The default implementation does nothing; passes that produce outputs must override this and at minimum write the same output handles they would in AddRenderPasses (typically by adding a clear pass) so downstream passes still see a valid resource.

Reimplemented in ezAOPass, ezBloomPass, and ezLSAOPass.

◆ DeclareRendererDependenciesForCategory()

void ezRenderPipelinePass::DeclareRendererDependenciesForCategory ( ezRenderData::Category  category,
ezRenderGraph ref_graph,
ezRenderGraphPassBuilder ref_passBuilder 
)

Imports and declares the render-graph barrier dependencies that were recorded during extraction for category (via ezMsgExtractRenderData::AddDependency). Call this in AddRenderPasses for every category you want to call RenderDataWithCategory on in the execution callback.

◆ QueryTextureProvider()

virtual ezGALTextureHandle ezRenderPipelinePass::QueryTextureProvider ( const ezRenderPipelineNodePin pPin,
const ezGALTextureCreationDescription desc 
)
inlinevirtual

Returns the current texture this node provides at the given *ProviderPin. This function is called every frame if this node holds a ezRenderPipelineNodeInputProviderPin or ezRenderPipelineNodeOutputProviderPin pin. The node can return a valid texture handle, or an invalid handle, in which case the missing texture will be created from the texture pool.

Parameters
pPinThe member pin for which the texture is requested.
descThe format of the texture that should be provided.
Returns
The texture to use for this pin's connections. Or invalid, in which case it reverts to a regular input / output pin.

Reimplemented in ezHistorySourcePass, ezHistoryTargetPass, and ezTargetPass.

◆ ReadBackProperties()

void ezRenderPipelinePass::ReadBackProperties ( ezView pView)
virtual

Allows for the pass to write data back using ezView::SetRenderPassReadBackProperty. E.g. picking results etc.

Reimplemented in ezPickingRenderPass.


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