Plasma Engine  2.0
Loading...
Searching...
No Matches
plRenderPipelinePass Class Referenceabstract
Inheritance diagram for plRenderPipelinePass:

Public Member Functions

 plRenderPipelinePass (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.
 
bool IsStereoAware () const
 True if the render pipeline pass can handle stereo cameras correctly.
 
virtual bool GetRenderTargetDescriptions (const plView &view, const plArrayPtr< plGALTextureCreationDescription *const > inputs, plArrayPtr< plGALTextureCreationDescription > outputs)=0
 For a given input pin configuration, provide the output configuration of this node. Outputs is already resized to the number of output pins.
 
virtual plGALTextureHandle QueryTextureProvider (const plRenderPipelineNodePin *pPin, const plGALTextureCreationDescription &desc)
 
virtual void InitRenderPipelinePass (const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)
 After GetRenderTargetDescriptions was called successfully for each pass, this function is called with the inputs and outputs for review. Disconnected pins have a nullptr value in the passed in arrays. This is the time to create additional resources that are not covered by the pins automatically, e.g. a picking texture or eye adaptation buffer.
 
virtual void Execute (const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)=0
 Render into outputs. Both inputs and outputs are passed in with actual texture handles. Disconnected pins have a nullptr value in the passed in arrays. You can now create views and render target setups on the fly and fill the output targets with data.
 
virtual void ExecuteInactive (const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)
 
virtual void ReadBackProperties (plView *pView)
 Allows for the pass to write data back using plView::SetRenderPassReadBackProperty. E.g. picking results etc.
 
virtual plResult Serialize (plStreamWriter &inout_stream) const
 
virtual plResult Deserialize (plStreamReader &inout_stream)
 
void RenderDataWithCategory (const plRenderViewContext &renderViewContext, plRenderData::Category category, plRenderDataBatch::Filter filter=plRenderDataBatch::Filter())
 
PL_ALWAYS_INLINE plRenderPipelineGetPipeline ()
 
PL_ALWAYS_INLINE const plRenderPipelineGetPipeline () const
 
- Public Member Functions inherited from plRenderPipelineNode
void InitializePins ()
 
plHashedString GetPinName (const plRenderPipelineNodePin *pPin) const
 
const plRenderPipelineNodePinGetPinByName (const char *szName) const
 
const plRenderPipelineNodePinGetPinByName (plHashedString sName) const
 
const plArrayPtr< const plRenderPipelineNodePin *const > GetInputPins () const
 
const plArrayPtr< const plRenderPipelineNodePin *const > GetOutputPins () const
 
- Public Member Functions inherited from plReflectedClass
virtual const plRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const plRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
PL_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Friends

class plRenderPipeline
 

Additional Inherited Members

- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 

Member Function Documentation

◆ Execute()

virtual void plRenderPipelinePass::Execute ( const plRenderViewContext & renderViewContext,
const plArrayPtr< plRenderPipelinePassConnection *const > inputs,
const plArrayPtr< plRenderPipelinePassConnection *const > outputs )
pure virtual

Render into outputs. Both inputs and outputs are passed in with actual texture handles. Disconnected pins have a nullptr value in the passed in arrays. You can now create views and render target setups on the fly and fill the output targets with data.

Implemented in plAntialiasingPass, plAOPass, plBloomPass, plBlurPass, plCopyTexturePass, plDepthOnlyPass, plDOFPass, plForwardRenderPass, plHistorySourcePass, plHistoryTargetPass, plLSAOPass, plMsaaResolvePass, plMsaaUpscalePass, plPickingRenderPass, plReflectionFilterPass, plSelectionHighlightPass, plSeparatedBilateralBlurPass, plSimpleRenderPass, plSourcePass, plSSRAdvancedPass, plSSRPass, plStereoTestPass, plTargetPass, plTonemapPass, and plTransparentForwardRenderPass.

◆ GetRenderTargetDescriptions()

virtual bool plRenderPipelinePass::GetRenderTargetDescriptions ( const plView & view,
const plArrayPtr< plGALTextureCreationDescription *const > inputs,
plArrayPtr< plGALTextureCreationDescription > outputs )
pure virtual

◆ InitRenderPipelinePass()

void plRenderPipelinePass::InitRenderPipelinePass ( const plArrayPtr< plRenderPipelinePassConnection *const > inputs,
const plArrayPtr< plRenderPipelinePassConnection *const > outputs )
virtual

After GetRenderTargetDescriptions was called successfully for each pass, this function is called with the inputs and outputs for review. Disconnected pins have a nullptr value in the passed in arrays. This is the time to create additional resources that are not covered by the pins automatically, e.g. a picking texture or eye adaptation buffer.

Reimplemented in plLSAOPass, and plPickingRenderPass.

◆ QueryTextureProvider()

virtual plGALTextureHandle plRenderPipelinePass::QueryTextureProvider ( const plRenderPipelineNodePin * pPin,
const plGALTextureCreationDescription & desc )
inlinevirtual

Returns the current texture this node provides at the given *ProviderPin. This function is called every frame if this node holds a plRenderPipelineNodeInputProviderPin or plRenderPipelineNodeOutputProviderPin 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 plHistorySourcePass, plHistoryTargetPass, and plTargetPass.

◆ ReadBackProperties()

void plRenderPipelinePass::ReadBackProperties ( plView * pView)
virtual

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

Reimplemented in plPickingRenderPass.


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