ezEngine Release 26.9
Loading...
Searching...
No Matches
ezHistorySourcePass Class Reference

Allows to access data from a previous frame. Always comes in a pair with a ezHistoryTargetPass. To preserve textures across the next frame you need to create this node to define the type of texture and initial state. This node's output pin will give access to the previous frame's content. Next, create an ezHistoryTargetPass. It's input pin exposes the same texture as provided by the source node but allows you to write to by connecting the input pin to another pass that produces the image that you want to carry to the next frame. To connect an ezHistoryTargetPass to its counterpart you need to set it's "SourcePassName" property to the name of the ezHistorySourcePass you want to match. As both nodes expose the same texture, special care has to be taken that it's not used as input and output of another pass at the same time. In those cases, add a ezCopyTexturePass to break up invalid state. More...

#include <HistorySourcePass.h>

Inheritance diagram for ezHistorySourcePass:

Public Member Functions

 ezHistorySourcePass (const char *szName="HistorySourcePass")
 
virtual ezStatus AddRenderPasses (const ezViewData &viewData, const ezCamera &camera, ezRenderGraph &ref_graph, const ezArrayPtr< const ezRenderPipelinePinConnection > inputs, ezArrayPtr< ezRenderPipelinePinConnection > outputs) override
 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 ezGALTextureHandle QueryTextureProvider (const ezRenderPipelineNodePin *pPin, const ezGALTextureCreationDescription &desc) override
 Provides the history texture handle for the output pin.
 
virtual ezResult Serialize (ezStreamWriter &inout_stream) const override
 
virtual ezResult Deserialize (ezStreamReader &inout_stream) override
 
- Public Member Functions inherited from ezRenderPipelinePass
 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.
 
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
 
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.
 
- 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 Attributes

ezRenderPipelineNodeOutputProviderPin m_PinOutput
 Provides previous frame's texture.
 
ezEnum< ezSourceFormatm_Format = ezSourceFormat::Default
 Texture format for the history buffer.
 
ezEnum< ezGALMSAASampleCountm_MsaaMode = ezGALMSAASampleCount::None
 MSAA sample count.
 
ezColor m_ClearColor = ezColor::Black
 Initial clear color for first frame.
 
bool m_bFirstExecute = true
 Whether this is the first frame (clears to m_ClearColor).
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 
- Protected Member Functions inherited from ezRenderPipelinePass
void SetReadBackProperty (ezView *pView, ezStringView sPropertyName, const ezVariant &value)
 

Detailed Description

Allows to access data from a previous frame. Always comes in a pair with a ezHistoryTargetPass. To preserve textures across the next frame you need to create this node to define the type of texture and initial state. This node's output pin will give access to the previous frame's content. Next, create an ezHistoryTargetPass. It's input pin exposes the same texture as provided by the source node but allows you to write to by connecting the input pin to another pass that produces the image that you want to carry to the next frame. To connect an ezHistoryTargetPass to its counterpart you need to set it's "SourcePassName" property to the name of the ezHistorySourcePass you want to match. As both nodes expose the same texture, special care has to be taken that it's not used as input and output of another pass at the same time. In those cases, add a ezCopyTexturePass to break up invalid state.

Member Function Documentation

◆ AddRenderPasses()

ezStatus ezHistorySourcePass::AddRenderPasses ( const ezViewData viewData,
const ezCamera camera,
ezRenderGraph ref_graph,
const ezArrayPtr< const ezRenderPipelinePinConnection inputs,
ezArrayPtr< ezRenderPipelinePinConnection outputs 
)
overridevirtual

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.

Reimplemented from ezRenderPipelinePass.

◆ Deserialize()

ezResult ezHistorySourcePass::Deserialize ( ezStreamReader inout_stream)
overridevirtual

Reimplemented from ezRenderPipelinePass.

◆ QueryTextureProvider()

ezGALTextureHandle ezHistorySourcePass::QueryTextureProvider ( const ezRenderPipelineNodePin pPin,
const ezGALTextureCreationDescription desc 
)
overridevirtual

Provides the history texture handle for the output pin.

Reimplemented from ezRenderPipelinePass.

◆ Serialize()

ezResult ezHistorySourcePass::Serialize ( ezStreamWriter inout_stream) const
overridevirtual

Reimplemented from ezRenderPipelinePass.


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