TODO: follow the NVI pattern, use xxxOverride protected funcs Brush renderer class. More...
#include <kanzi/graphics_2d/brush_renderer.hpp>
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, ClipQuad &quad, const Matrix4x4 &transform) const |
Draw a brush using given quad. More... | |
void | draw (Renderer3D &renderer, ClipQuad &quad, const Matrix3x3 &transform) const |
Overload for draw a brush using given quad. More... | |
void | restoreResources () |
Restore resources after suspend. 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... | |
Protected Types | |
enum | RenderMode { RenderModeNone, RenderModeInvalid, RenderModeOpaqueNoContent, RenderModeTranslucentNoContent, RenderModeOpaque, RenderModeTranslucent } |
Enum signifying currently selected render mode. More... | |
Protected Member Functions | |
BrushRenderer (Brush *brush, Node *node) | |
Constructor. More... | |
virtual void | drawQuadOverride (Renderer3D &renderer, ClipQuad &quad, 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... | |
bool | isChangeCounterSame () const |
Check if property change counter matches that of the brush. More... | |
void | updateChangeCounter () |
Update property change counter to match brush. More... | |
RenderMode | getRenderMode () const |
Get currently selected render mode. More... | |
bool | hasRenderMode () const |
Tell if any (valid) render mode selection has been made. More... | |
void | setRenderMode (RenderMode selection) |
Set render mode. More... | |
Protected Attributes | |
size_t | m_contentTextureHandle |
Render value handle. More... | |
size_t | m_renderOpacityHandle |
Render value handle. More... | |
TODO: follow the NVI pattern, use xxxOverride protected funcs Brush renderer class.
Just an interface, actual rendering will be implemented by specialized brush renderers.
|
protected |
Enum signifying currently selected render mode.
|
inlinevirtual |
Destructor.
void kanzi::BrushRenderer::updateRender | ( | bool | forceOpaque, |
bool | translucencyHint | ||
) |
Called from Node2D::updateRender(), prepare brush for rendering.
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 | ) |
Bind brush renderer for rendering.
renderer | Renderer to use. |
void kanzi::BrushRenderer::draw | ( | Renderer3D & | renderer, |
ClipQuad & | 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 suspend.
|
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. |
|
protectedpure virtual |
Draw a clip quad.
To be implemented by specific brush implementations.
renderer | Renderer to use. |
quad | Quad to draw. |
transform | Transform to use. |
Implemented in kanzi::ColorBrushRenderer, kanzi::MaterialBrushRenderer, and kanzi::TextureBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific bind implementation.
Implemented in kanzi::ColorBrushRenderer, kanzi::MaterialBrushRenderer, kanzi::TextureBrushRenderer, 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::ColorBrushRenderer, kanzi::MaterialBrushRenderer, kanzi::TextureBrushRenderer, and kanzi::ContentBrushRenderer.
|
protectedpure virtual |
BrushRenderer-specific restore resources implementation.
Implemented in kanzi::GlBrushRenderer.
|
protected |
Check if property change counter matches that of the brush.
|
protected |
Update property change counter to match brush.
|
inlineprotected |
Get currently selected render mode.
|
inlineprotected |
Tell if any (valid) render mode selection has been made.
|
inlineprotected |
Set render mode.
selection | New render mode selection. |
|
protected |
Render value handle.
|
protected |
Render value handle.