Kanzi  3.9.8
Kanzi Engine C++ API
kanzi::GlRenderValueBinding Struct Reference

GlRenderValueBinding is a binding from shaders/materials into values in GlRenderState. More...

#include <kanzi/core.ui/platform/graphics_backend/gl/gl_render_value_binding.hpp>

Public Member Functions

void addPropertyListener (Node *node, GlRenderState &renderState, PropertyDataType dataType, AbstractPropertyType propertyType, ShaderProgram::UniformTransformation transformation)
 Add a listener for given property. More...
 
void applyBlendMode (GlRenderState &renderState, PropertyObject *object, Material &material)
 Applies the blend mode. More...
 
void attach (Material &material, Node *node, bool readBlendModeFromNode, GlRenderState &renderState)
 Attaches to a material and a node. More...
 
void attach (Material &material, Node *node, GlRenderState &renderState)
 Attaches to a material and a node. More...
 
optional< int > getBlendModeValue (PropertyObject *object, Material &material)
 Gets the blend mode value to apply. More...
 
void invalidate ()
 Invalidates the state of the notification handler. More...
 
void setAllPropertiesDirty ()
 Flag all properties as being dirty and needing an update. More...
 
void setBlendModeFallback (optional< int > blendMode)
 Sets the fallback blend mode. More...
 
void setBlendModeOverride (optional< int > blendMode)
 Sets the blend mode override. More...
 
void update (GlRenderState &renderState, PropertyObject *object, Material &material)
 Apply changes into render state. More...
 

Detailed Description

GlRenderValueBinding is a binding from shaders/materials into values in GlRenderState.

Since
Kanzi 3.9.7 removed applyBlendMode(). Use getBlendModeValue() instead.

Member Function Documentation

void kanzi::GlRenderValueBinding::addPropertyListener ( Node node,
GlRenderState renderState,
PropertyDataType  dataType,
AbstractPropertyType  propertyType,
ShaderProgram::UniformTransformation  transformation 
)

Add a listener for given property.

Parameters
nodeNode on which to listen for property changes.
renderStateRender state to update when the property changes.
dataTypeData type of the render value.
propertyTypeProperty type to listen.
transformationShader transformation for uniform values.
Since
Kanzi 3.9.7 added dataType.
void kanzi::GlRenderValueBinding::attach ( Material material,
Node node,
bool  readBlendModeFromNode,
GlRenderState renderState 
)

Attaches to a material and a node.

When used with 2D nodes, the blend mode control is not necessarily attached to the node. This is the case when the blend mode is determined manually.

Parameters
materialMaterial to use.
nodeNode to listen property changes on or nullptr.
readBlendModeFromNodeIf you want to read the blend mode from the node, set to true.
renderStateThe render state to update on changes.
Since
Kanzi 3.9.1
void kanzi::GlRenderValueBinding::attach ( Material material,
Node node,
GlRenderState renderState 
)
inline

Attaches to a material and a node.

Reading the blend mode from the node is enabled.

Parameters
materialMaterial to use.
nodeNode to listen property changes on or nullptr.
renderStateThe render state to update on changes.
void kanzi::GlRenderValueBinding::update ( GlRenderState renderState,
PropertyObject object,
Material material 
)

Apply changes into render state.

Parameters
renderStateRender state to write changes to.
objectFallback property object for property value.
materialFallback material for property value.
Since
Kanzi 3.9.1 data type of object parameter changed from Object* to PropertyObject*.
void kanzi::GlRenderValueBinding::invalidate ( )

Invalidates the state of the notification handler.

Use this function to invalidate a node that you destroyed before destroying the GlRenderValueBinding.

void kanzi::GlRenderValueBinding::setAllPropertiesDirty ( )

Flag all properties as being dirty and needing an update.

optional<int> kanzi::GlRenderValueBinding::getBlendModeValue ( PropertyObject object,
Material material 
)

Gets the blend mode value to apply.

Kanzi uses this function internally by calling it in applyBlendMode(). You can use this function in tests.

Parameters
objectObject to use for acquiring the property.
materialCurrent material.
Since
Kanzi 3.9.7
void kanzi::GlRenderValueBinding::applyBlendMode ( GlRenderState renderState,
PropertyObject object,
Material material 
)

Applies the blend mode.

Parameters
renderStateThe render state to which to write.
objectObject to use for acquiring the property.
materialCurrent material.
Since
Kanzi 3.9.1
void kanzi::GlRenderValueBinding::setBlendModeOverride ( optional< int >  blendMode)
inline

Sets the blend mode override.

Call this function only when a material is already attached.

Parameters
blendModeBlend mode override or nullopt to disable.
Since
Kanzi 3.9.1
void kanzi::GlRenderValueBinding::setBlendModeFallback ( optional< int >  blendMode)
inline

Sets the fallback blend mode.

Call this function only when a material is already attached.

Parameters
blendModeBlend mode fallback or nullopt to disable.
Since
Kanzi 3.9.1

The documentation for this struct was generated from the following file: