cohtml::ViewRenderer
The ViewRenderer is in charge of drawing a View in a user-supplied texture.
#include <ViewRenderer.h>
Public Types
Name | |
---|---|
enum | PaintResult { PR_NotFound, PR_NothingToPaint, PR_PaintedSome, PR_FrameComplete} The result of the Paint call. |
Public Functions
Name | |
---|---|
virtual | ~ViewRenderer() |
virtual void | Destroy() =0 Destroys the ViewRenderer. |
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. |
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. |
virtual void | SetRenderTarget(void * nativeTexture, void * nativeDepthStencil, renoir::Texture2D textureDescription) =0 Sets the user texture that will be used for rendering. |
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. |
Public Types Documentation
enum PaintResult
Enumerator | Value | Description |
---|---|---|
PR_NotFound | ||
PR_NothingToPaint | Such frame was not found, it might have already been painted. | |
PR_PaintedSome | The frame did nothing because there we no actual changes to apply. | |
PR_FrameComplete | The 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).