Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzu_render_context_stack.h File Reference

Render context stack used in layers and composers. More...

Functions

kzsError kzuRenderContextStackCreate (const struct KzcMemoryManager *memoryManager, struct KzuRenderContextStack **out_renderContextStack)
 Create a new render context stack. More...
 
kzsError kzuRenderContextStackDelete (struct KzuRenderContextStack *renderContextStack)
 Delete a render context stack. More...
 
void kzuRenderContextStackSetActiveCanvas (struct KzuRenderContextStack *renderContextStack, const struct KzuCanvas *activeCanvas)
 Set the active canvas to be used by this render context stack. More...
 
struct KzuCanvaskzuRenderContextStackGetActiveCanvas (const struct KzuRenderContextStack *renderContextStack)
 Get the active canvas used by this render context stack. More...
 
void kzuRenderContextStackSetDebugComposer (struct KzuRenderContextStack *renderContextStack, struct KzuComposer *debugComposer)
 Set the debug composer to be used by this render context stack. More...
 
struct KzuComposerkzuRenderContextStackGetDebugComposer (const struct KzuRenderContextStack *renderContextStack)
 Get the debug composer used by this render context stack. More...
 
kzUint kzuRenderContextStackGetActiveScreenWidth (const struct KzuRenderContextStack *renderContextStack)
 Get active screen width. More...
 
kzUint kzuRenderContextStackGetActiveScreenHeight (const struct KzuRenderContextStack *renderContextStack)
 Get active screen height. More...
 
kzsError kzuRenderContextStackPush (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderTarget *renderTarget, struct KzcVector2 limits)
 Push a framebuffer into the stack. More...
 
kzsError kzuRenderContextStackPeek (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderTarget **out_renderTarget, struct KzcVector2 *out_size)
 Peeks render context stack topmost element, containing render target and size. More...
 
kzsError kzuRenderContextStackPop (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderTarget **out_renderTarget)
 Pop a framebuffer from the stack. More...
 
kzsError kzuRenderContextStackApply (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderer *renderer, kzBool enableDepth)
 Apply the topmost render target for 2D rendering. More...
 
kzsError kzuRenderContextStackApplyPropertiesEffectively (struct KzuRenderer *renderer, struct KzuRenderTarget *frameBufferTexture, const struct KzcVector2 *limits, kzBool enableDepth)
 Applies properties effectively. More...
 
kzsError kzuRenderContextStackDetach (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderer *renderer)
 Detaches the render target from render context stack. More...
 
kzsError kzuRenderContextStackComposerApply (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderer *renderer, struct KzuComposer *composer)
 Applies the composer with render context stack. More...
 
kzsError kzuRenderContextStackComposerRestore (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderer *renderer, const struct KzuComposer *composer)
 Restores the composer from render context stack. More...
 
kzsError kzuRenderContextStackViewportApply (const struct KzuRenderContextStack *renderContextStack, kzFloat viewportX, kzFloat viewportY, kzFloat viewportWidth, kzFloat viewportHeight, kzBool scissorEnabled, kzFloat scissorX, kzFloat scissorY, kzFloat scissorWidth, kzFloat scissorHeight)
 Applies the viewport layer for the stack. More...
 
kzsError kzuRenderContextStackDownsample (const struct KzuTexture *sourceTexture, struct KzuRenderTarget *renderTarget, struct KzuRenderer *renderer)
 Downsamples source texture to target texture. More...
 
kzsError kzuRenderContextStackSetViewport (const struct KzuRenderContextStack *renderContextStack, const struct KzcVector4 *viewport)
 Sets viewport for topmost render context stack. More...
 
kzsError kzuRenderContextStackGetViewport (const struct KzuRenderContextStack *renderContextStack, struct KzcVector4 *out_viewport)
 Gets viewport from render context stack. More...
 
kzsError kzuRenderContextStackGetRenderingViewport (const struct KzuRenderContextStack *renderContextStack, const struct KzuRenderer *renderer, struct KzcVector4 *out_viewport)
 Gets rendering viewport from render context stack. More...
 
kzsError kzuRenderContextStackGetScissor (const struct KzuRenderContextStack *renderContextStack, kzBool *out_enabled, struct KzcVector4 *out_scissor)
 Gets scissor from render context stack. More...
 
kzsError kzuRenderContextStackGetTexture (const struct KzuRenderContextStack *renderContextStack, struct KzuRenderTarget **out_renderTarget)
 Get render context stack current texture. More...
 
kzsError kzuRenderContextStackGetSize (const struct KzuRenderContextStack *renderContextStack, struct KzcVector2 *out_size)
 Get render context stack current size. More...
 

Detailed Description

Render context stack used in layers and composers.

Copyright 2008-2019 by Rightware. All rights reserved.

Function Documentation

kzsError kzuRenderContextStackCreate ( const struct KzcMemoryManager memoryManager,
struct KzuRenderContextStack **  out_renderContextStack 
)

Create a new render context stack.

Should be done anew for each frame - use quick memory manager.

kzsError kzuRenderContextStackDelete ( struct KzuRenderContextStack *  renderContextStack)

Delete a render context stack.

Note that if using a quick memory manager, this isn't even necessary.

void kzuRenderContextStackSetActiveCanvas ( struct KzuRenderContextStack *  renderContextStack,
const struct KzuCanvas activeCanvas 
)

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

struct KzuCanvas* kzuRenderContextStackGetActiveCanvas ( const struct KzuRenderContextStack *  renderContextStack)

Get the active canvas used by this render context stack.

void kzuRenderContextStackSetDebugComposer ( struct KzuRenderContextStack *  renderContextStack,
struct KzuComposer debugComposer 
)

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

struct KzuComposer* kzuRenderContextStackGetDebugComposer ( const struct KzuRenderContextStack *  renderContextStack)

Get the debug composer used by this render context stack.

kzUint kzuRenderContextStackGetActiveScreenWidth ( const struct KzuRenderContextStack *  renderContextStack)

Get active screen width.

kzUint kzuRenderContextStackGetActiveScreenHeight ( const struct KzuRenderContextStack *  renderContextStack)

Get active screen height.

kzsError kzuRenderContextStackPush ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderTarget renderTarget,
struct KzcVector2  limits 
)

Push a framebuffer into the stack.

kzsError kzuRenderContextStackPeek ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderTarget **  out_renderTarget,
struct KzcVector2 out_size 
)

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

kzsError kzuRenderContextStackPop ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderTarget **  out_renderTarget 
)

Pop a framebuffer from the stack.

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

kzsError kzuRenderContextStackApply ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderer renderer,
kzBool  enableDepth 
)

Apply the topmost render target for 2D rendering.

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

kzsError kzuRenderContextStackApplyPropertiesEffectively ( struct KzuRenderer renderer,
struct KzuRenderTarget frameBufferTexture,
const struct KzcVector2 limits,
kzBool  enableDepth 
)

Applies properties effectively.

kzsError kzuRenderContextStackDetach ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderer renderer 
)

Detaches the render target from render context stack.

kzsError kzuRenderContextStackComposerApply ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderer renderer,
struct KzuComposer composer 
)

Applies the composer with render context stack.

kzsError kzuRenderContextStackComposerRestore ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderer renderer,
const struct KzuComposer composer 
)

Restores the composer from render context stack.

kzsError kzuRenderContextStackViewportApply ( const struct KzuRenderContextStack *  renderContextStack,
kzFloat  viewportX,
kzFloat  viewportY,
kzFloat  viewportWidth,
kzFloat  viewportHeight,
kzBool  scissorEnabled,
kzFloat  scissorX,
kzFloat  scissorY,
kzFloat  scissorWidth,
kzFloat  scissorHeight 
)

Applies the viewport layer for the stack.

kzsError kzuRenderContextStackDownsample ( const struct KzuTexture sourceTexture,
struct KzuRenderTarget renderTarget,
struct KzuRenderer renderer 
)

Downsamples source texture to target texture.

kzsError kzuRenderContextStackSetViewport ( const struct KzuRenderContextStack *  renderContextStack,
const struct KzcVector4 viewport 
)

Sets viewport for topmost render context stack.

kzsError kzuRenderContextStackGetViewport ( const struct KzuRenderContextStack *  renderContextStack,
struct KzcVector4 out_viewport 
)

Gets viewport from render context stack.

kzsError kzuRenderContextStackGetRenderingViewport ( const struct KzuRenderContextStack *  renderContextStack,
const struct KzuRenderer renderer,
struct KzcVector4 out_viewport 
)

Gets rendering viewport from render context stack.

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

kzsError kzuRenderContextStackGetScissor ( const struct KzuRenderContextStack *  renderContextStack,
kzBool out_enabled,
struct KzcVector4 out_scissor 
)

Gets scissor from render context stack.

kzsError kzuRenderContextStackGetTexture ( const struct KzuRenderContextStack *  renderContextStack,
struct KzuRenderTarget **  out_renderTarget 
)

Get render context stack current texture.

kzsError kzuRenderContextStackGetSize ( const struct KzuRenderContextStack *  renderContextStack,
struct KzcVector2 out_size 
)

Get render context stack current size.