#include <kanzi/core.ui/platform/graphics_backend/gl/brush_renderer.hpp>
Public Types | |
enum | RenderMode { RenderModeNone, RenderModeInvalid, RenderModeOpaqueNoContent, RenderModeTranslucentNoContent, RenderModeOpaque, RenderModeTranslucent } |
Enum signifying currently selected render mode. More... | |
Public Member Functions | |
virtual | ~BrushRenderer () |
Destructor. More... | |
void | updateRender (bool forceOpaque, bool translucencyHint) |
Called from Node2D::updateRender(), prepare brush for rendering. More... | |
void | updateRender (bool forceOpaque) |
Default parameter override for updateRender(). More... | |
void | updateRender () |
Default parameter override for updateRender(). More... | |
void | bind (Renderer3D &renderer) |
Bind brush renderer for rendering. More... | |
void | draw (Renderer3D &renderer, const Geometry &quad, const Matrix4x4 &transform) const |
Draw a brush using given quad. More... | |
void | draw (Renderer3D &renderer, const Geometry &quad, const Matrix3x3 &transform) const |
Overload for draw a brush using given quad. More... | |
void | restoreResources () |
Restore resources after sleep. More... | |
Brush * | getBrush () const |
Access brush. More... | |
unsigned int | getPropertyChangeCounter () const |
Access property change counter. More... | |
float | getRenderOpacity () const |
Access opacity. More... | |
void | setRenderOpacity (float opacity) |
Set opacity to use for next attach. More... | |
TextureSharedPtr | getContentTexture () const |
Access content texture. More... | |
void | setContentTexture (TextureSharedPtr texture) |
Set a content texture. More... | |
Node * | getNode () const |
Access node. More... | |
RenderMode | getRenderMode () const |
Get currently selected render mode. More... | |
bool | hasRenderMode () const |
Tell if any (valid) render mode selection has been made. More... | |
bool | hasOpaqueRenderMode () const |
Tell if selected render mode is opaque. More... | |
Protected Member Functions | |
BrushRenderer (Brush *brush, Node *node) | |
Constructor. More... | |
virtual void | drawOverride (Renderer3D &renderer, const Geometry &geometry, const Matrix4x4 &transform) const =0 |
Draw a clip quad. More... | |
virtual void | bindOverride (Renderer3D &renderer)=0 |
BrushRenderer-specific bind implementation. More... | |
virtual void | updateRenderOverride (bool forceOpaque, bool translucencyHint)=0 |
BrushRenderer-specific opacity override implementation. More... | |
virtual void | restoreResourcesOverride ()=0 |
BrushRenderer-specific restore resources implementation. More... | |
void | setRenderMode (RenderMode selection) |
Set render mode. More... | |
bool | isChangeCounterSame () const |
Check if property change counter matches that of the brush. More... | |
void | updateChangeCounter () |
Update property change counter to match brush. More... | |
Brush renderer class.
Just an interface, actual rendering will be implemented by specialized brush renderers.
Enum signifying currently selected render mode.
|
inlinevirtual |
Destructor.
void kanzi::BrushRenderer::updateRender | ( | bool | forceOpaque, |
bool | translucencyHint | ||
) |
Called from Node2D::updateRender(), prepare brush for rendering.
updateRender() should be called when brush material or attached nodes have been changed. Unlike bind(), updateRender() does not need to be called every frame before draw().
forceOpaque | Should opaque render mode be selected no matter what? |
translucencyHint | Additional hint to use translucent rendering. |
|
inline |
Default parameter override for updateRender().
Allows forcing opacity, in this situation translucency hint does not matter.
forceOpaque | Should opaque render mode be selected no matter what? |
|
inline |
Default parameter override for updateRender().
Opaqueness force and translucency hint are off.
void kanzi::BrushRenderer::bind | ( | Renderer3D & | renderer | ) |
void kanzi::BrushRenderer::draw | ( | Renderer3D & | renderer, |
const Geometry & | quad, | ||
const Matrix4x4 & | transform | ||
) | const |
Draw a brush using given quad.
renderer | Renderer to use. |
quad | Quad to draw. |
transform | Transform (4X4) to use. |
|
inline |
Overload for draw a brush using given quad.
renderer | Renderer to use. |
quad | Quad to draw. |
transform | Transform (3X3) to use. |
void kanzi::BrushRenderer::restoreResources | ( | ) |
Restore resources after sleep.
|
inline |
Access property change counter.
|
inline |
Access opacity.
|
inline |
Set opacity to use for next attach.
opacity | New render opacity. |
|
inline |
Access content texture.
|
inline |
Set a content texture.
texture | New render texture. |
|
inline |
Get currently selected render mode.
|
inline |
Tell if any (valid) render mode selection has been made.
|
inline |
Tell if selected render mode is opaque.
|
protectedpure virtual |
Draw a clip quad.
To be implemented by specific brush implementations.
renderer | Renderer to use. |
geometry | Quad to draw. |
transform | Transform to use. |
Implemented in kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, kanzi::MaterialBrushRenderer, and kanzi::ContentBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific bind implementation.
Implemented in kanzi::MaterialBrushRenderer, kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, and kanzi::ContentBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific opacity override implementation.
forceOpaque | Should opaque render mode be selected no matter what? |
translucencyHint | Additional hint to use translucent rendering. |
Implemented in kanzi::MaterialBrushRenderer, kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, and kanzi::ContentBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific restore resources implementation.
Implemented in kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, kanzi::MaterialBrushRenderer, and kanzi::ContentBrushRenderer.
|
inlineprotected |
Set render mode.
selection | New render mode selection. |
|
inlineprotected |
Check if property change counter matches that of the brush.
|
inlineprotected |
Update property change counter to match brush.