Kanzi  3.9.8
Kanzi Engine C++ API
kanzi::EffectStackRenderer2D Class Reference

Use the Effect Stack Renderer to render a sequence of child effect renderers. More...

#include <kanzi/core.ui/effect/effect_stack_renderer2d.hpp>

Inheritance diagram for kanzi::EffectStackRenderer2D:
[legend]

Public Types

using RenderParametersEntry = array< uint32_t, 2 >
 

Public Member Functions

void addChild (NodeEffectRenderer2DSharedPtr childRenderer)
 Adds a child renderer to the end of the child list. More...
 
NodeEffectRenderer2DSharedPtr getChild (unsigned int index) const
 Gets the child renderer at a given index. More...
 
unsigned int getChildCount () const
 Gets the number of child renderers. More...
 
void insertChild (unsigned int index, NodeEffectRenderer2DSharedPtr childRenderer)
 Inserts a child renderer at a given index. More...
 
void removeChild (unsigned int index)
 Removes the child renderer at a given index. More...
 
void setIsLayered (unsigned int index, bool isLayered)
 Sets whether the child renderer at the specified index is layered. More...
 
void setRenderingRequired (unsigned int index, bool requiresRendering)
 Sets whether the child renderer at the specified index requires rendering. More...
 
- Public Member Functions inherited from kanzi::NodeEffectRenderer2D
void applyEffect (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const Matrix3x3 &worldTransform, const CompositionContentRequirements &requirements, TextureSharedPtr sourceContent)
 Applies the effect on the source content provided as texture. More...
 
void beginEffect (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const Matrix3x3 &worldTransform, const CompositionContentRequirements &requirements)
 Begins the effect. More...
 
void blitEffect (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const QuadDescription &effectQuad, const Matrix3x3 &transform, const Matrix4x4 *perspectiveMatrix, const Matrix4x4 *projectionMatrix, int blendMode, bool needsClear)
 Blits the effect to the current framebuffer. More...
 
void endEffect (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager)
 Ends the effect. More...
 
NodeEffect2DSharedPtr getEffect () const
 Get NodeEffect2D instance where this renderer has been instantiated from. More...
 
size_t getEffectPassCount () const
 Gets the number of effect passes. More...
 
bool isLayeredOnTop () const
 Whether a compatible effect renders logically on top of its source content. More...
 
bool isRenderEffectOnlyEnabled () const
 Whether the effect only mode is enabled. More...
 
void restoreResources ()
 Restores resources after the rendering context has been lost. More...
 
void setRenderEffectOnly (bool renderEffectOnly)
 Sets the render effect only mode. More...
 
virtual ~NodeEffectRenderer2D ()
 Declare NodeEffectRenderer2D as not movable nor copyable. More...
 

Static Public Member Functions

static EffectStackRenderer2DUniquePtr create (EffectStack2DSharedPtr effectStack)
 Creates an instance of EffectStackRenderer2D. More...
 

Additional Inherited Members

- Protected Types inherited from kanzi::NodeEffectRenderer2D
using EffectPassContainer = vector< EffectPass >
 Container for effect passes. More...
 
- Protected Member Functions inherited from kanzi::NodeEffectRenderer2D
EffectPassaddEffectPass ()
 Adds an effect pass and gets a reference to that pass. More...
 
void beginInitialEffectPass (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const CompositionContentRequirements &requirements)
 Begins the initial effect pass (effect pass at index 0). More...
 
void blitEffectPass (int effectPassIndex, Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const QuadDescription &effectQuad, const Matrix3x3 &transform, const Matrix4x4 *perspectiveMatrix, const Matrix4x4 *projectionMatrix, int blendMode, bool needsClear)
 Blits the effect pass and handles the perspective transform if necessary. More...
 
void blitFinalEffectPass (Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager, const QuadDescription &effectQuad, const Matrix3x3 &transform, const Matrix4x4 *perspectiveMatrix, const Matrix4x4 *projectionMatrix, int blendMode, bool needsClear)
 Blits the final effect pass, whose index is getEffectPassCount() - 1, and handles the perspective transform if necessary. More...
 
void blitIntermediateEffectPass (int effectPassIndex, Renderer3D &renderer, CompositionStack &compositionStack, CompositionManager *compositionManager)
 Blits the intermediate effect pass. More...
 
void clearRenderTarget (Renderer3D &renderer, CompositionStack &compositionStack, TextureSharedPtr texture, ColorRGBA clearColor)
 Clears the render target texture with a given color. More...
 
void clearRenderTarget (Renderer3D &renderer, CompositionStack &compositionStack, NativeFramebufferHandle framebufferHandle, ColorRGBA clearColor)
 Clears the native framebuffer with a given color. More...
 
void configureInitialEffectPass (Vector2 sourceContentSize)
 Configures the initial effect pass. More...
 
void endInitialEffectPass (CompositionStack &compositionStack)
 Ends the initial effect pass, whose index is 0. More...
 
void finalizeEffectPasses ()
 Finalizes the effect passes. More...
 
Vector2 getEffectInputTexelSize (int effectPassIndex, int inputIndex)
 Gets the texel size of the input effect pass texture in texture coordinates. More...
 
EffectPassgetEffectPass (int index)
 Gets a reference to the effect pass at a given index. More...
 
int getLastEffectPassIndex () const
 Gets the index of the last effect pass. More...
 
bool isInitialPassRenderTargetTemporary () const
 Whether the initial pass render target is temporary. More...
 
 NodeEffectRenderer2D (NodeEffect2DSharedPtr nodeEffect)
 Constructor. More...
 
virtual void onRenderEffectOnlyChanged ()
 Kanzi calls this when the render effect only mode changes. More...
 
void releaseEffectPassInputRenderTargets (EffectPass &currentEffectPass, CompositionManager *compositionManager)
 Releases those temporary render targets used by input that have EffectPass::Input::releaseRenderTarget set to true. More...
 
void removeAllEffectPasses ()
 Removes all user-added effect passes, but leaves the internal initial effect pass. More...
 
void setLayeredOnTop (bool layeredOnTop)
 Sets whether the effect is layered on top of the source content. More...
 
- Static Protected Attributes inherited from kanzi::NodeEffectRenderer2D
static constexpr int InitialEffectPassIndex
 Effect pass index for the initial pass. More...
 

Detailed Description

Use the Effect Stack Renderer to render a sequence of child effect renderers.

Kanzi renders the child effect renderers in the order that you add them to the effect stack renderer.

See also
EffectStack2D, NodeEffect2D, NodeEffectPrefab2D, NodeEffectTemplate2D
Since
Kanzi 3.9.8

Member Typedef Documentation

Member Function Documentation

static EffectStackRenderer2DUniquePtr kanzi::EffectStackRenderer2D::create ( EffectStack2DSharedPtr  effectStack)
static

Creates an instance of EffectStackRenderer2D.

Parameters
effectStackThe EffectStack2D instance on which this renderer is based.
Returns
EffectStackRenderer2D instance.
void kanzi::EffectStackRenderer2D::addChild ( NodeEffectRenderer2DSharedPtr  childRenderer)
inline

Adds a child renderer to the end of the child list.

Parameters
childRendererA non-null child renderer.
void kanzi::EffectStackRenderer2D::insertChild ( unsigned int  index,
NodeEffectRenderer2DSharedPtr  childRenderer 
)

Inserts a child renderer at a given index.

Parameters
indexIndex at which to insert the child renderer.
childRendererThe child renderer to insert.
void kanzi::EffectStackRenderer2D::removeChild ( unsigned int  index)

Removes the child renderer at a given index.

Parameters
indexThe index of the child renderer to remove.
NodeEffectRenderer2DSharedPtr kanzi::EffectStackRenderer2D::getChild ( unsigned int  index) const

Gets the child renderer at a given index.

Parameters
indexIndex at which to retrieve the child renderer.
Returns
The child renderer at the given index.
unsigned int kanzi::EffectStackRenderer2D::getChildCount ( ) const

Gets the number of child renderers.

void kanzi::EffectStackRenderer2D::setRenderingRequired ( unsigned int  index,
bool  requiresRendering 
)

Sets whether the child renderer at the specified index requires rendering.

Parameters
indexThe index of the child renderer.
requiresRenderingIf the child renderer requires rendering e\ true, otherwise false.
void kanzi::EffectStackRenderer2D::setIsLayered ( unsigned int  index,
bool  isLayered 
)

Sets whether the child renderer at the specified index is layered.

Parameters
indexThe index of the child renderer.
isLayeredIf the child renderer is layered e\ true, otherwise false.

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