#include <kanzi/core.ui/graphics2d/brush_renderer.hpp>
Public Types | |
enum | RenderMode { RenderModeNone, RenderModeInvalid, RenderModeOpaqueNoContent, RenderModeTranslucentNoContent, RenderModeOpaque, RenderModeTranslucent } |
Enum signifying currently selected render mode. More... | |
Public Member Functions | |
void | bind (Renderer3D &renderer) |
Bind brush renderer for rendering. More... | |
void | draw (Renderer3D &renderer, const Geometry &quad, const Matrix4x4 &transform) |
Draw a brush using given quad. More... | |
void | draw (Renderer3D &renderer, const Geometry &quad, const Matrix3x3 &transform) |
Overload for draw a brush using given quad. More... | |
Brush * | getBrush () const |
Access brush. More... | |
TextureSharedPtr | getContentTexture () const |
Access content texture. More... | |
virtual MaterialSharedPtr | getMaterial () |
Get currently set material for the renderer. More... | |
Node * | getNode () const |
Access node. More... | |
unsigned int | getPropertyChangeCounter () const |
Access property change counter. More... | |
RenderMode | getRenderMode () const |
Get currently selected render mode. More... | |
float | getRenderOpacity () const |
Access opacity. More... | |
bool | hasOpaqueRenderMode () const |
Tell if selected render mode is opaque. More... | |
bool | hasRenderMode () const |
Tell if any (valid) render mode selection has been made. More... | |
void | restoreResources () |
Restore resources after sleep. More... | |
void | setContentTexture (TextureSharedPtr texture) |
Set a content texture. More... | |
void | setRenderOpacity (float opacity) |
Set opacity to use for next attach. 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... | |
virtual | ~BrushRenderer () |
Destructor. More... | |
Protected Member Functions | |
virtual void | bindOverride (Renderer3D &renderer)=0 |
BrushRenderer-specific bind implementation. More... | |
BrushRenderer (Brush *brush, Node *node) | |
Constructor. More... | |
virtual void | drawOverride (Renderer3D &renderer, const Geometry &geometry, const Matrix4x4 &transform)=0 |
Draw a clip quad. More... | |
bool | isChangeCounterSame () const |
Check if property change counter matches that of the brush. More... | |
virtual void | restoreResourcesOverride ()=0 |
BrushRenderer-specific restore resources implementation. More... | |
void | setRenderMode (RenderMode selection) |
Set render mode. More... | |
void | updateChangeCounter () |
Update property change counter to match brush. More... | |
virtual void | updateRenderOverride (bool forceOpaque, bool translucencyHint)=0 |
BrushRenderer-specific opacity override implementation. 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 | ||
) |
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.
|
inlinevirtual |
Get currently set material for the renderer.
Reimplemented in kanzi::MaterialBrushRenderer, kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, and kanzi::ContentBrushRenderer.
|
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::ContentBrushRenderer, and kanzi::MaterialBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific bind implementation.
renderer | Renderer to use. |
Implemented in kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, kanzi::ContentBrushRenderer, and kanzi::MaterialBrushRenderer.
|
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::TextureBrushRenderer, kanzi::ColorBrushRenderer, kanzi::ContentBrushRenderer, and kanzi::MaterialBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific restore resources implementation.
Implemented in kanzi::TextureBrushRenderer, kanzi::ColorBrushRenderer, kanzi::ContentBrushRenderer, and kanzi::MaterialBrushRenderer.
|
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.