All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
kanzi::RenderContextStack Class Reference

Render context stack. More...

#include <user/layers/kzu_render_context_stack.h>

Public Member Functions

 RenderContextStack ()
 
void reset ()
 
void setActiveRenderTarget (const RenderTarget *renderTarget)
 Set the active render target to be used by this render context stack. More...
 
const RenderTargetgetActiveRenderTarget () const
 Get the active render target used by this render context stack. More...
 
void setDebugComposer (DebugComposerSharedPtr debugComposer)
 Set the debug composer to be used by this render context stack. More...
 
DebugComposerSharedPtr getDebugComposer () const
 Get the debug composer used by this render context stack. More...
 
unsigned int getActiveScreenWidth () const
 Get active screen width. More...
 
unsigned int getActiveScreenHeight () const
 Get active screen height. More...
 
void push (FramebufferSharedPtr renderTarget, Vector2 limits)
 Push a framebuffer into the stack. More...
 
void peek (FramebufferSharedPtr *out_renderTarget, Vector2 *out_size)
 Peeks render context stack topmost element, containing render target and size. More...
 
FramebufferSharedPtr pop ()
 Pop a framebuffer from the stack. More...
 
bool isEmpty () const
 Tell if render context stack is empty. More...
 
void apply (Renderer3D *renderer, bool enableDepth)
 Apply the topmost render target for 2D rendering. More...
 
void detach ()
 Detaches the render target from render context stack. More...
 
void composerApply (Renderer3D *renderer, Composer *composer)
 Applies the composer with render context stack. More...
 
void composerRestore (Renderer3D *renderer, const Composer *composer)
 Restores the composer from render context stack. More...
 
void viewportApply (float viewportX, float viewportY, float viewportWidth, float viewportHeight, bool scissorEnabled, float scissorX, float scissorY, float scissorWidth, float scissorHeight)
 Applies the viewport layer for the stack. More...
 
void setViewport (const KzcVector4 *viewport)
 Sets viewport for topmost render context stack. More...
 
void getViewport (KzcVector4 *out_viewport) const
 Gets viewport from render context stack. More...
 
void getRenderingViewport (const Renderer3D *renderer, KzcVector4 *out_viewport) const
 Gets rendering viewport from render context stack. More...
 
void getScissor (bool *out_enabled, KzcVector4 *out_scissor) const
 Gets scissor from render context stack. More...
 
FramebufferSharedPtr getTexture () const
 Get render context stack current texture. More...
 
void getSize (Vector2 *out_size) const
 Get render context stack current size. More...
 
void setSize (const Vector2 *size)
 Set size. More...
 
size_t getStackSize () const
 Get render context stack current stack size. More...
 

Static Public Member Functions

static RenderContextStackSharedPtr create ()
 
static void applyStateFor2D (Renderer3D *renderer, FramebufferSharedPtr framebuffer, Vector2 limits, bool enableDepth)
 Applies properties effectively. More...
 

Public Attributes

vector< KzuRenderContextm_renderContextStack
 Array for render targets. More...
 
const RenderTargetm_activeRenderTarget
 Active render target to use. More...
 
DebugComposerSharedPtr m_debugComposer
 Debug composer to use if set. More...
 

Detailed Description

Render context stack.

The stack has no ownership over the stored render targets - they will not be reserved or deleted.

Constructor & Destructor Documentation

kanzi::RenderContextStack::RenderContextStack ( )
explicit

Member Function Documentation

static RenderContextStackSharedPtr kanzi::RenderContextStack::create ( )
static
void kanzi::RenderContextStack::reset ( )
void kanzi::RenderContextStack::setActiveRenderTarget ( const RenderTarget renderTarget)

Set the active render target to be used by this render context stack.

const RenderTarget* kanzi::RenderContextStack::getActiveRenderTarget ( ) const

Get the active render target used by this render context stack.

void kanzi::RenderContextStack::setDebugComposer ( DebugComposerSharedPtr  debugComposer)

Set the debug composer to be used by this render context stack.

DebugComposerSharedPtr kanzi::RenderContextStack::getDebugComposer ( ) const

Get the debug composer used by this render context stack.

unsigned int kanzi::RenderContextStack::getActiveScreenWidth ( ) const

Get active screen width.

unsigned int kanzi::RenderContextStack::getActiveScreenHeight ( ) const

Get active screen height.

void kanzi::RenderContextStack::push ( FramebufferSharedPtr  renderTarget,
Vector2  limits 
)

Push a framebuffer into the stack.

void kanzi::RenderContextStack::peek ( FramebufferSharedPtr out_renderTarget,
Vector2 out_size 
)

Peeks render context stack topmost element, containing render target and size.

FramebufferSharedPtr kanzi::RenderContextStack::pop ( )

Pop a framebuffer from the stack.

If out_renderTarget is non-null, write the popped element into it.

bool kanzi::RenderContextStack::isEmpty ( ) const

Tell if render context stack is empty.

Parameters
renderContextStackRender Context stack to check.
Returns
True if yes, false if no.
void kanzi::RenderContextStack::apply ( Renderer3D renderer,
bool  enableDepth 
)

Apply the topmost render target for 2D rendering.

Shorthand for kzuRenderContextStackApplyPropertiesEffectively, should normally not be called in favor of it.

static void kanzi::RenderContextStack::applyStateFor2D ( Renderer3D renderer,
FramebufferSharedPtr  framebuffer,
Vector2  limits,
bool  enableDepth 
)
static

Applies properties effectively.

void kanzi::RenderContextStack::detach ( )

Detaches the render target from render context stack.

void kanzi::RenderContextStack::composerApply ( Renderer3D renderer,
Composer composer 
)

Applies the composer with render context stack.

void kanzi::RenderContextStack::composerRestore ( Renderer3D renderer,
const Composer composer 
)

Restores the composer from render context stack.

void kanzi::RenderContextStack::viewportApply ( float  viewportX,
float  viewportY,
float  viewportWidth,
float  viewportHeight,
bool  scissorEnabled,
float  scissorX,
float  scissorY,
float  scissorWidth,
float  scissorHeight 
)

Applies the viewport layer for the stack.

void kanzi::RenderContextStack::setViewport ( const KzcVector4 viewport)

Sets viewport for topmost render context stack.

void kanzi::RenderContextStack::getViewport ( KzcVector4 out_viewport) const

Gets viewport from render context stack.

void kanzi::RenderContextStack::getRenderingViewport ( const Renderer3D renderer,
KzcVector4 out_viewport 
) const

Gets rendering viewport from render context stack.

Can vary from context stack size for example if stereoscopic rendering has been enabled.

void kanzi::RenderContextStack::getScissor ( bool *  out_enabled,
KzcVector4 out_scissor 
) const

Gets scissor from render context stack.

FramebufferSharedPtr kanzi::RenderContextStack::getTexture ( ) const

Get render context stack current texture.

void kanzi::RenderContextStack::getSize ( Vector2 out_size) const

Get render context stack current size.

void kanzi::RenderContextStack::setSize ( const Vector2 size)

Set size.

size_t kanzi::RenderContextStack::getStackSize ( ) const

Get render context stack current stack size.

Member Data Documentation

vector<KzuRenderContext> kanzi::RenderContextStack::m_renderContextStack

Array for render targets.

const RenderTarget* kanzi::RenderContextStack::m_activeRenderTarget

Active render target to use.

DebugComposerSharedPtr kanzi::RenderContextStack::m_debugComposer

Debug composer to use if set.


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