kanzi::RenderStatePropertyNotificationHandler Class Referenceabstract

Render value updater for render state. More...

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

Inheritance diagram for kanzi::RenderStatePropertyNotificationHandler:
kanzi::RenderValuePropertyNotificationHandlerBase kanzi::NodePropertyNotificationHandler kanzi::AbstractPropertyNotificationHandler kanzi::TypedRenderStatePropertyNotificationHandler< T > kanzi::TypedRenderStatePropertyNotificationHandler< GraphicsBlendMode > kanzi::TypedRenderStatePropertyNotificationHandler< TextureSharedPtr >

Public Member Functions

void update (GlRenderState &renderState, Object *object, Material &material)
 Update render state with new values acquirable from this. More...
 
int getHandle () const
 Access handle. More...
 
- Public Member Functions inherited from kanzi::RenderValuePropertyNotificationHandlerBase
bool isDirty () const
 Is the container dirty? More...
 
void setDirty (bool enabled)
 Set dirty flag state. More...
 
RenderValuePropertyNotificationHandlerBaseoperator= (KZ_RV_REF(RenderValuePropertyNotificationHandlerBase) other)
 Assignment operator. More...
 
- Public Member Functions inherited from kanzi::NodePropertyNotificationHandler
NodegetNode () const
 Access the node. More...
 
void invalidate ()
 Invalidates the state of the notification handler. More...
 
bool isValid () const
 Tell if this notification handler is valid. More...
 
- Public Member Functions inherited from kanzi::AbstractPropertyNotificationHandler
AbstractPropertyType getPropertyType () const
 Get the property type this handler is listening. More...
 

Protected Member Functions

 RenderStatePropertyNotificationHandler ()
 Empty constructor. More...
 
 RenderStatePropertyNotificationHandler (AbstractPropertyType propertyType, Node *node)
 Constructor Has no handle. More...
 
 RenderStatePropertyNotificationHandler (AbstractPropertyType propertyType, Node *node, GlRenderState::HandleType handle, ShaderProgram::UniformTransformation transformation)
 Constructor. More...
 
virtual void updateOverride (GlRenderState &renderState, Object *object, Material &material)=0
 Perform type-specific update. More...
 
- Protected Member Functions inherited from kanzi::RenderValuePropertyNotificationHandlerBase
 RenderValuePropertyNotificationHandlerBase ()
 Empty constructor. More...
 
 RenderValuePropertyNotificationHandlerBase (AbstractPropertyType propertyType, Node *node)
 Constructor. More...
 
 RenderValuePropertyNotificationHandlerBase (AbstractPropertyType propertyType, Node *node, ShaderProgram::UniformTransformation transformation)
 Constructor. More...
 
 RenderValuePropertyNotificationHandlerBase (KZ_RV_REF(RenderValuePropertyNotificationHandlerBase) other)
 Move constructor. More...
 
virtual void onPropertyChanged (PropertyNotificationReason) KZ_OVERRIDE
 AbstractPropertyNotificationHandler::onPropertyChanged() implementation. More...
 
ShaderProgram::UniformTransformation getTransformation () const
 Gets the uniform transformation. More...
 
- Protected Member Functions inherited from kanzi::NodePropertyNotificationHandler
 NodePropertyNotificationHandler ()
 Empty constructor. More...
 
 NodePropertyNotificationHandler (const NodePropertyNotificationHandler &rhs)
 Copy constructor. More...
 
 NodePropertyNotificationHandler (AbstractPropertyType propertyType, Node *node)
 Constructor. More...
 
virtual ~NodePropertyNotificationHandler ()
 Destructor. More...
 
NodePropertyNotificationHandleroperator= (const NodePropertyNotificationHandler &rhs)
 Assignment operator. More...
 
- Protected Member Functions inherited from kanzi::AbstractPropertyNotificationHandler
 AbstractPropertyNotificationHandler ()
 Empty constructor. More...
 
 AbstractPropertyNotificationHandler (AbstractPropertyType propertyType)
 Constructor. More...
 

Detailed Description

Render value updater for render state.

This is an abstract class that is inherited and specialized by property value type.

Constructor & Destructor Documentation

kanzi::RenderStatePropertyNotificationHandler::RenderStatePropertyNotificationHandler ( )
inlineexplicitprotected

Empty constructor.

kanzi::RenderStatePropertyNotificationHandler::RenderStatePropertyNotificationHandler ( AbstractPropertyType  propertyType,
Node node 
)
inlineexplicitprotected

Constructor Has no handle.

Should only used for blend mode.

Parameters
propertyTypeProperty type to listen on.
nodeNode to listen for changes on.
kanzi::RenderStatePropertyNotificationHandler::RenderStatePropertyNotificationHandler ( AbstractPropertyType  propertyType,
Node node,
GlRenderState::HandleType  handle,
ShaderProgram::UniformTransformation  transformation 
)
inlineexplicitprotected

Constructor.

Parameters
propertyTypeProperty type to listen on.
nodeNode to listen for changes on.
handleHandle into the render state.
transformationUniform transformation.

Member Function Documentation

void kanzi::RenderStatePropertyNotificationHandler::update ( GlRenderState renderState,
Object object,
Material material 
)

Update render state with new values acquirable from this.

Do not update if dirty flag has not been set (property is not marked as dirty).

Parameters
renderStateRender state to update.
objectFallback object for property value. Can be 0.
materialFallback material for property value.
int kanzi::RenderStatePropertyNotificationHandler::getHandle ( ) const
inline

Access handle.

Returns
Handle.
virtual void kanzi::RenderStatePropertyNotificationHandler::updateOverride ( GlRenderState renderState,
Object object,
Material material 
)
protectedpure virtual

Perform type-specific update.

Parameters
renderStateRender state to update.
objectFallback object for property value, may be 0 for no object.
materialFallback material for property value.

Implemented in kanzi::TypedRenderStatePropertyNotificationHandler< TextureSharedPtr >, kanzi::TypedRenderStatePropertyNotificationHandler< GraphicsBlendMode >, and kanzi::TypedRenderStatePropertyNotificationHandler< T >.


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