Kanzi  3.9.4
Kanzi Engine 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, 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...
 
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.

Member Function Documentation

◆ addPropertyListener()

void kanzi::GlRenderValueBinding::addPropertyListener ( Node node,
GlRenderState renderState,
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.
propertyTypeProperty type to listen.
transformationShader transformation for uniform values.

◆ attach() [1/2]

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

◆ attach() [2/2]

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.

◆ update()

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*.

◆ invalidate()

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.

◆ setAllPropertiesDirty()

void kanzi::GlRenderValueBinding::setAllPropertiesDirty ( )

Flag all properties as being dirty and needing an update.

◆ applyBlendMode()

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

◆ setBlendModeOverride()

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

◆ setBlendModeFallback()

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: