cohtml::ViewRenderer

The ViewRenderer is in charge of drawing a View in a user-supplied texture.

#include <ViewRenderer.h>

Public Types

Name
enumPaintResult { PR_NotFound, PR_NothingToPaint, PR_PaintedSome, PR_FrameComplete}
The result of the Paint call.

Public Functions

Name
virtual~ViewRenderer()
virtual voidDestroy() =0
Destroys the ViewRenderer.
virtual PaintResultPaint(unsigned frameId, bool runUntilCompleteFrame) =0
Call this each frame to update the UI texture. This call will perform the actual rendering using the backend associated in the SystemRenderer.
virtual voidSetRenderTarget(void * nativeTexture, void * nativeDepthStencil, unsigned width, unsigned height, unsigned samples) =0
Sets the user texture that will be used for rendering. The format of the texture is assumed to be RGBA8.
virtual voidSetRenderTarget(void * nativeTexture, void * nativeDepthStencil, renoir::Texture2D textureDescription) =0
Sets the user texture that will be used for rendering.
virtual voidFreeRenderingResources() =0
Frees all rendering resources used by Cohtml that are associated with this specific view. To free all resources, you need to call this method on all ViewRenderer objects and on the SystemRenderer.

Public Types Documentation

enum PaintResult

EnumeratorValueDescription
PR_NotFound
PR_NothingToPaintSuch frame was not found, it might have already been painted.
PR_PaintedSomeThe frame did nothing because there we no actual changes to apply.
PR_FrameCompleteThe call executed some commands but the frame is not yet completely done. All rendering commands for this frame have been completed

The result of the Paint call.

Public Functions Documentation

function ~ViewRenderer

virtual ~ViewRenderer()

function Destroy

virtual void Destroy() =0

Destroys the ViewRenderer.

function Paint

virtual PaintResult Paint(
    unsigned frameId,
    bool runUntilCompleteFrame
) =0

Call this each frame to update the UI texture. This call will perform the actual rendering using the backend associated in the SystemRenderer.

function SetRenderTarget

virtual void SetRenderTarget(
    void * nativeTexture,
    void * nativeDepthStencil,
    unsigned width,
    unsigned height,
    unsigned samples
) =0

Sets the user texture that will be used for rendering. The format of the texture is assumed to be RGBA8.

Parameters:

  • nativeTexture An opaque object that will later be passed to the rendering backend. This should represent the texture to draw into in whatever object is expected by the backend.
  • nativeDepthStencil An opaque object that will later be passed to the rendering backend. This should represent the depth-stencil texture in whatever object is expected by the backend.
  • width the width of the backend texture
  • height the height of the backend texture
  • samples the number of samples of the target texture if MSAA is used. Set to 1 if no MSAA is enabled.

function SetRenderTarget

virtual void SetRenderTarget(
    void * nativeTexture,
    void * nativeDepthStencil,
    renoir::Texture2D textureDescription
) =0

Sets the user texture that will be used for rendering.

Parameters:

  • nativeTexture An opaque object that will later be passed to the rendering backend. This should represent the texture to draw into in whatever object is expected by the backend.
  • nativeDepthStencil An opaque object that will later be passed to the rendering backend. This should represent the depth-stencil texture in whatever object is expected by the backend.
  • textureDescription A Description of the texture that will be used as render target. This should describe the dimensions, the samples count and the format of the texture.

function FreeRenderingResources

virtual void FreeRenderingResources() =0

Frees all rendering resources used by Cohtml that are associated with this specific view. To free all resources, you need to call this method on all ViewRenderer objects and on the SystemRenderer.

See: cohtml::SystemRenderer::FreeRenderingResources

Note: Per-view rendering resources are the constant/vertex/index buffers (except path buffers).