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 RenderTarget * | getActiveRenderTarget () 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< KzuRenderContext > | m_renderContextStack |
Array for render targets. More... | |
const RenderTarget * | m_activeRenderTarget |
Active render target to use. More... | |
DebugComposerSharedPtr | m_debugComposer |
Debug composer to use if set. More... | |
Render context stack.
The stack has no ownership over the stored render targets - they will not be reserved or deleted.
|
explicit |
|
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.
renderContextStack | Render Context stack to check. |
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 |
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.
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.