Crate kanzi

Source

Modules§

abstract_binding
abstract_binding_runtime
autogen
bitmap_image
data_object
data_object_constraint
data_object_list
domain
editor_info
exceptions
inherits_constraint
interop
iterators
log
main_loop_scheduler
math
message_arguments
message_arguments_constraint
message_type
metaclass
metaclass_constraint
named_interval_profiler
object
plugin
property_type
property_type_constraint
resource_id
resource_manager
spline
string
task_dispatcher
test_runtime
thread_object
variant
variant_constraint

Macros§

debug
Logs a debug message.
derive_object_equality_director
error
Logs a message at the error level.
info
Logs a message at the info level.
lazy_static
log
The standard logging macro.
message
Generates a function that creates and registers an instance of the declared message type.
property
Generates a function that creates and registers an instance of the declared property type.
warn
Logs a message at the warn level.

Structs§

AbstractBinding
AbstractBinding is the base class for binding classes.
AbstractBindingRuntime
Base class for binding runtimes.
Action
Actions are small operations that Kanzi executes when the trigger event that contains that action occurs and the trigger conditions are met. Action is the base class for actions. For example, if you want to perform a simple operation, such as set a value of a property, you can use a trigger with the SetPropertyAction action.
ActionBase
Base abstraction class for Action classes. See: Action, ApplyAction.
Activity2D
An Activity is a part of application UI that is responsible for a task. For example, a media player application can have Activity nodes, such as radio, music player, and AUX. However, an Activity can also be a smaller task, such as an Activity for the popup volume indicator that appears only when the user changes the volume in a media player. An Activity can be visual, but does not have to be. For example, an Activity that is visual can instantiate a prefab to show a popup window, while an Activity that is not visual can be music playback which plays music in the background regardless of other Activity nodes.
Activity3D
An Activity is a part of application UI that is responsible for a task. For example, a media player application can have Activity nodes, such as radio, music player, and AUX. However, an Activity can also be a smaller task, such as an Activity for the popup volume indicator that appears only when the user changes the volume in a media player. An Activity can be visual, but does not have to be. For example, an Activity that is visual can instantiate a prefab to show a popup window, while an Activity that is not visual can be music playback which plays music in the background regardless of other Activity nodes.
ActivityCodeBehind
ActivityCodeBehind is code that is associated with a particular Activity node, and has access to the properties of that Activity node. You can use this to:
ActivityConcept
ActivityElement
ActivityHostConcept
AnimationBindingProcessor
Animation binding processor executes an animation and calculates the value for use in expression bindings. The processor itself is not executed unless an operation code within binding operation codes refers to it by index.
AnimationPlayer
Use the Animation Player to play back an animation timeline that you set using the TimelineProperty property in that Animation Player. Kanzi resolves paths to animated nodes relative to the node where you attach an Animation Player.
AnimationResource
A Resource wrapper class for animations. Currently only supports loading of float keyframe animations.
ApplyAction
Base abstraction for Actions for DataTrigger, such as ForwardingApplyAction and ApplyActivationAction. An ApplyAction applies the changes described in the Action on apply(), and reverts them on unapply().
ApplyActivationAction
An ApplyActivationAction keeps an Activity node activated for as long as the condition is met in a DataTrigger that contains this action. When the trigger condition is no longer met, Kanzi rolls back the state of the Activity node to the state before the action was applied. Use the ApplyActivationAction only with a DataTrigger.
ApplyPropertyAction
An ApplyPropertyAction sets a property to the requested value for as long as the condition is met in the DataTrigger that sets off this action. When the trigger condition is no longer met, Kanzi rolls back the value of that property to the value before the action was applied, or to the value set while Kanzi was applying an ApplyPropertyAction. Use the ApplyPropertyAction only with a DataTrigger.
BinaryResource
Binding
Binding is the simplest form of binding. It performs a copy from source to target without caching the value. To learn more about bindings, see AbstractBinding.
BindingProcessor
Binding processor
BitmapFontFile
Font implementation for bitmap fonts. Supported bitmap fonts consist of a plain text fnt definition file and one or more bitmaps containing the pre-rendered glyphs at a certain size.
BitmapImage
Image is the basic runtime primitive to load, hold, and convert image data in memory. Each image has width, height, pixel format, image data in memory, and can contain mipmap images.
BlitRenderPass
Use the Blit Render Pass to blit one or more textures to the screen of the current rendering context using a material. After the blit operation, a Blit Render Pass passes the control to its descendants and then further to its siblings and parent.
BlurEffect2D
Use BlurEffect2D to apply a Gaussian blur post-processing effect to 2D nodes.
Brush
Use a brush to fill a Node2D.
Button2D
Use the Button 2D node to create a 2D UI control that the user can interact with through clicking, tapping, or pressing a key.
Button3D
Use the Button 3D node to create a 3D UI control that the user can interact with through clicking, tapping, or pressing a key.
ButtonConcept
CallbackBindingProcessor
Callback processor.
Camera
Use a Camera to define the view transform to use to render a 3D Scene.
ChangeFlags
ClearRenderPass
Use a Clear Render Pass to clear the color, depth, and stencil buffers of the current render context before passing the control to the descendants of this render pass.
ClickConcept
ClickManipulator
Click input manipulator recognizes the click and tap gestures from the incoming touch events. The click manipulator generates the messages required to implement the logic for UI elements that users can click or tap. For example, use the input manipulator to create a button.
ClickManipulatorComponent
ClickManipulatorComponent installs a ClickManipulator to a node. Use ClickManipulatorComponent to enable nodes to react to click and touch input events and to control the behavior of the installed ClickManipulator.
CodeBehind
Code Behind is a workflow where you associate code with an instance of a node instead of a type. In Code Behind you write code that you want to associate with the view or controller parts of the model-view-controller pattern.
ColorBrush
Color brush class.
ColorRGBA
Color with 4 floating point components: red, green, blue and alpha (r, g, b, a). \ingroup Math
Command
Command class defines property and message types used in implementation of commands.
CompositionBrush
Texture brush class.
CompositionTargetRenderPass
Use the Composition Target Render Pass to set one to four composition targets and render all descendant render passes to the composition targets that the Composition Target Render Pass created. If you set multiple composition targets, rendering can write to all specified buffers at the same time. See MultipleCompositionTargets “Using multiple composition targets”. After Kanzi renders the descendant render passes of a Composition Target Render Pass, the Composition Target Render Pass restores the earlier composition settings.
Condition
Condition for triggers.
Constraints
Contains property types of Constraints.
ContentBrush
Texture brush class.
ContentLayout2D
Use the Content Layout 2D node to present content in a 2D UI control as a single item. You can use the Content Layout 2D node to create a control that adapts to the size of its content, or a control where the content adapts to the size of the control.
ContentLayout3D
The measured dimensions of the Content Layout 3D are determined by the combined maximum dimensions of its items.
ContentLayoutConcept
CubeMapRenderPass
Use the Cubemap Render Pass to create a cubemap texture that represents the scene from some location. You can use the result of the Cubemap Render Pass as a cubemap texture. For example, use the Cubemap Render Pass to create dynamic reflections of the environment on the surface of 3D nodes.
DataContext
DataContext acts as a container for data.
DataDrivenExclusiveActivityHost2D
A type of Exclusive Activity Host node, that uses a list of Activity nodes provided by setting a list DataObject, from a DataSource, to the ActivitySourceProperty property. A child Activity node of a Data-Driven Exclusive Activity Host uses the prefab set in the ActivityTemplateProperty.
DataDrivenExclusiveActivityHost3D
A type of Exclusive Activity Host node, that uses a list of Activity nodes provided by setting a list DataObject, from a DataSource, to the ActivitySourceProperty property. A child Activity node of a Data-Driven Exclusive Activity Host uses the prefab set in the ActivityTemplateProperty.
DataDrivenExclusiveActivityHostConcept
DataObject
DataObject is the base class for data. All data within the data source is described as a tree of data objects. The base class provides support for the hierarchy as the derived classes provide support for different value types.
DataObjectList
DataObjectList is the base class for list data object.
DataSource
Use data sources to separate the user interface from the application data and to remove the dependencies between a Kanzi Studio project and the application code which define the Kanzi application. Kanzi allows you to define the format and structure of your data source by defining a Kanzi Engine data source plugin.
DataSourceListItemGenerator2D
DataSourceListItemGenerator3D
DataTrigger
Use a DataTrigger to apply an action to either set a property value of a target node or activate an Activity node. A DataTrigger keeps that action applied for as long as the condition in that DataTrigger is met. When the condition in that DataTrigger is no longer met, Kanzi reverts the changes that it applied using that DataTrigger. Note that in a DataTrigger you can use only ApplyAction actions: ApplyActivationAction and ApplyPropertyAction.
DataTriggerComponent
Base class for the DataTrigger class. The DataTriggerComponent class defines the inclusion of ApplyAction class.
DefaultLogger
DefaultLogger is a container for an arbitrary number of other loggers.
DispatchMessageAction
DispatchMessageAction dispatches a message of specified type to a specified target.
DockLayout2D
Use the Dock Layout 2D node to place nodes relative to each other along the sides of a Dock Layout 2D node. To set the side along which you want to place a node in a Dock Layout 2D node, use the DockLayoutConcept::SideProperty property.
DockLayout3D
Use the Dock Layout 3D node to place nodes relative to each other along the sides of a Dock Layout 3D node. To set the side along which you want to place a node in a Dock Layout 3D node, use the DockLayoutConcept::SideProperty property.
DockLayoutConcept
Domain
Domain binds Kanzi subsystems and objects together.
DragAndDropManipulator
Drag-and-drop input manipulator recognizes the drag-and-drop gesture from incoming touch events. It generates messages required to implement the logic for objects which react to the drag-and-drop gesture. For example, use the drag-and-drop input manipulator to move objects in an application.
DrawObjectsRenderPass
Use the Draw Objects Render Pass to render only nodes in a Scene node provided by an object source you set in this render pass. The Draw Objects Render Pass renders objects from the object source you set in the ObjectSourceProperty property with the Camera node that the Scene node uses. The Camera node that a Draw Objects Render Pass uses must be in the same Scene node as the objects that the Draw Objects Render Pass renders.
DrawObjectsWithMaterialRenderPass
Use the Draw Objects With %Material Render Pass to render nodes provided by an object source using a material.
EditorInfo
Editor information for metadata.
EffectStack2D
Use EffectStack2D to apply multiple post-processing effects to 2D nodes.
EmptyNode2D
Empty Node 2D can be used to group other 2D nodes.
EmptyNode3D
Use an EmptyNode3D to group 3D nodes.
Error
Error type used extnesively by this crate.
ExclusiveActivityHost2D
An Activity Host that displays Activity nodes one at a time.
ExclusiveActivityHost3D
An Activity Host that displays Activity nodes one at a time.
ExclusiveActivityHostConcept
ExpressionBindingProcessor
Expression binding processor.
ExpressionCondition
Use trigger conditions to set which conditions must be met for a Trigger to set off. For example, you can define conditions to set off a trigger when the user navigates to a specific Page node, enable the user to click a button only when that button is visible, or enable the user to scroll a Scroll View node only when a specific Page node is active.
FloatValueAccumulator
Use a FloatValueAccumulator to increase the value of a float property type or a property field over time.
FlowLayout2D
Flow Layout 2D arranges 2D items along a line and continues to the next line when it runs out of space.
FlowLayout3D
Flow Layout 3D arranges 3D items along a line and continues to the next line when it runs out of space.
FlowLayoutConcept
FocusManager
Focus Manager enables you to set and change the key focus between attached nodes. Each domain can have only one instance of a Focus Manager.
FocusNavigationManipulator
%FocusNavigationManipulator converts key gestures into focus chain navigation actions to move the focus between focusable nodes.
FocusScopeType
Specifies focus scope types.
FocusState
Specifies the focus states of a node.
FontFamily
A font family resource contains font files.
FontFile
FontFile is the base class for different font file resource implementations.
FontStyleConcept
ForwardingAction
ForwardingAction is the base class for the action classes that read and send arguments, such as SetPropertyAction or DispatchMessageAction.
Framebuffer
Framebuffer attachment state.
GPUResource
GPUResource is a resource that must be deployed to the GPU.
GatherLightsRenderPass
GatherLightsRenderPass is a class for generating light properties for rendering nodes.
GatherNearestLightsRenderPass
GatherNearestLightsRenderPass is an implementation of light gathering.
GraphicsFormat
GraphicsFormat specifies format of graphics data used for example in textures and vertex attributes.
GridLayout2D
See: For a 3D grid component, see GridLayout3D.
GridLayout3D
See: For a 2D grid component, see GridLayout2D.
GridLayoutConcept
GridListBox2D
Use the Grid List %Box 2D node to create scrollable lists of 2D items arranged in a grid.
GridListBox3D
Use the Grid List %Box 3D node to create scrollable lists of 3D items arranged in a grid.
GridListBoxConcept
Image2D
Image2D node.
InputManipulator
The base class for the Kanzi input manipulators. Use the input manipulators to recognize gestures, such as click or pinch, or hardware key gestures from incoming events. Kanzi has specialized subclasses to handle touch gestures and hardware key gestures. Kanzi converts and handles mouse events as touch gestures.
Instantiator3D
Use the Instantiator node to replicate the appearance of a 3D node, or a tree of 3D nodes, that the Instantiator node targets.
InstructionBindingProcessor
Instruction binding processor is the top-level class for all instruction-like binding processors.
IntValueAccumulator
Use an IntValueAccumulator to increase the value of an integer property type over time.
KanziStr
KanziString
Kanzi uses C++ std::string internally, and its internal representation differs from the Rust String type. Rust strings represent a sequence of UTF-8 code points, while C++ strings are an array of c_char.
KanziVersion
KeyManipulator
KeyManipulator class is a key input manipulator that detects key gestures. Kanzi recognizes a key gesture when it receives an event with a key code and an optional key modifier. When Kanzi recognizes a key gesture, an input manipulator:
KeyManipulatorComponent
The KeyManipulatorComponent node component installs a KeyManipulator to the attached node, and configures the key gesture of the manipulator.
KeyboardDeprecated
Keyboard declares the messages dispatched to the nodes when Kanzi handles a hardware key event. The key events handled by Kanzi are the press and release events. These key events are converted into KeyDownMessage and KeyUpMessage, that includes the translated logical key value and the key modifiers. Key modifiers are special keys that modify the logical key meaning when pressed together with that logical key. Deprecated: In Kanzi 3.8. To handle key messages, use KeyManipulator.
KzuExpressionValidatorOperation
Expression operation.
LegacyRenderPass
Legacy Render Pass is phased out in favor of specialized render passes that perform individual operations, which are combined in a Legacy Render Pass into a single render pass.
LevelOfDetail3D
Level of detail selector node is a 3D node that changes the appearance of its child nodes based on the viewing distance.
Light
Light node is a source of light for a 3D scene.
ListBoxConcept
ListBoxItemContainer
ListBoxItemContainer2D
List %Box Item Container for 2D List %Box nodes. Wrapper component for storing item object nodes.
ListBoxItemContainer3D
List %Box Item Container for 3D List %Box nodes. Wrapper component for storing item object nodes.
ListBoxItemContainerGenerator3D
ListBoxItemGenerator2D
ListBoxItemGenerator3D
ListBoxScrollingConcept
LongPressManipulator
Long-press input manipulator recognizes the long-press gesture from the incoming touch events. It generates the required messages to implement logic for nodes that react to the long-press gesture. For example, use the long-press input manipulator to open a context menu.
LongPressManipulatorComponent
LongPressManipulatorComponent installs a LongPressManipulator to a node. Use LongPressManipulatorComponent to enable nodes to react to long press and touch input events and to control the behavior of the installed LongPressManipulator.
MainLoopScheduler
MainLoopScheduler implements the Kanzi application main loop in form of a customizable sequence of stages, each consisting of a sequence of tasks, where a task is any callable, including functions, function objects, and lambdas.
MainLoopStage
MainLoopTaskToken
An opaque handle to a MainLoopScheduler task.
MainLoopTimerToken
An opaque handle to a MainLoopScheduler timer.
MaskEffect2D
Use MaskEffect2D to apply a mask to 2D nodes.
Material
A material is an instance of a material type (ShaderProgram) that contains the property values for the material type properties. These values can be overridden in the nodes that use the material.
MaterialBrush
Freeform shader brush.
MaterialSetupRenderPass
Use the %Material Setup Render Pass to set properties to a material for further render operations using that material.
Matrix3x3
Matrix with 3x3 elements.
Matrix4x4
Matrix with 4x4 elements.
Mesh
Mesh stores the geometry data for rendering Model3D nodes. A mesh has one or more clusters. Each cluster has material and primitives. Primitives are typically triangles stored as vertex data and index data.
MessageArguments
MessageArguments is the base class for arguments passed in messages. An instance of MessageArguments together with an instance of MessageType forms a Kanzi message. In Kanzi when you dispatch a message, you dispatch a message of certain type and arguments.
MessageTrigger
Message handler trigger.
MessageType
An instance of a MessageType represents a single message type in the Kanzi message system. A message type exists throughout the lifetime of an application.
Metaclass
Metaclass provides type inspection mechanism for Kanzi classes.
MipmapGenerationConcept
Model3D
Node for rendering meshes in 3D space.
Morph
MorphWeightTimeline
Timeline for animating morph weights.
MoveFocusAction
This action invokes the FocusManager::tryMoveFocus() method.
MultiClickManipulator
Multi-click input manipulator recognizes multi-click and multi-tap gestures from incoming touch events. It generates the messages required to implement the logic for nodes that change the state when users multi-click or multi-tap the node. For example, use the multi-click input manipulator to zoom in and out a map.
MultiClickManipulatorComponent
MultiClickManipulatorComponent installs a MultiClickManipulator to a node. Use MultiClickManipulatorComponent to enable nodes to react to multi-click and multi-touch input events and to control the behavior of the installed MultiClickManipulator.
NamedIntervalProfiler
The named interval profiler.
NavigationManipulator
The %NavigationManipulator supports these navigation directions and default keyboard keys for them:
NavigationManipulatorComponent
The NavigationManipulatorComponent node component installs a NavigationManipulator to a node, and configures the navigation key gestures of the manipulator.
NinePatchImage2D
A nine-patch image is a 3x3 grid of images. The center image is framed by the other images which all stretch according to the layout size.
Node
Base class for Kanzi nodes.
Node2D
Node2D is the base class of 2D nodes.
Node3D
Base class for all 3D nodes.
NodeComponent
NodeComponent is the base class for all node components. Node component is an isolated piece of logic which can be attached to any node in order to add additional functionality to it. Examples of node component could be Trigger which performs specific actions when certain conditions are met or AnimationPlayer which animates specific properties of the node it is attached to and its child nodes.
NodeEffect2D
Use node effects to apply post-processing effects to 2D nodes.
NodeEffectPrefab2D
Use node effect prefabs to create node effects that define post-processing effects for 2D nodes.
NodeListRenderPass
Use the Node List Render Pass to filter and hold a list of nodes that you want to render using other render passes.
NullBrush
Null brush class.
Object
Object represents a strong reference to an instance of C++ kanzi::Object.
ObjectSource
Structure for object source.
OnAttachedTrigger
On Attached Trigger.
OnPropertyChangedTrigger
Invokes associated actions on setting of a property type, specified by SourcePropertyTypeProperty, on a source node, specified by SourceNodeProperty. By default, invocation is performed also when setting to identical values. This behavior can be changed with IgnoreIdenticalValueProperty.
OutlineEffect2D
Use OutlineEffect2D to apply an outline to the content of 2D nodes.
Page
Use Page nodes to create the structure of an application user interface. For example, you can create different parts of the user interface, such as Home, Media Browser, Navigation, or Settings screens, each in their own hierarchy of Page nodes.
PageHost
Use a PageHost node to group Page and PageHost nodes, and to manage navigation requests and transitions in a tree of Page nodes under a PageHost node.
PageTransitionCollection
Transition collection is used to define transitions within a Page Host.
PanManipulator
Pan input manipulator recognizes a pan gesture from the incoming touch events. It generates messages for different phases of the pan gesture. You can use these messages to implement the logic to move nodes, to pan or to flick scrollable content. For example, you can use the pan input manipulator to scroll a map.
PanManipulatorComponent
PanManipulatorComponent installs a PanManipulator to a node. Use PanManipulatorComponent to enable nodes to react to pan events and to control the behavior of the installed PanManipulator.
ParallelActivityHost2D
An Activity Host that can display multiple Activity nodes at a time.
ParallelActivityHost3D
An Activity Host that can display multiple Activity nodes at a time.
ParallelActivityHostConcept
ParallelTimeline
Kanzi animation system consists of animations and timelines:
PinchManipulator
Pinch input manipulator recognizes the pinch gesture from the incoming touch events. It generates the required messages to implement the logic for objects which react to the pinch gesture. For example, use the pinch input manipulator to zoom in or zoom out a map using the pinch gesture.
PipelineStateRenderPass
Use the Pipeline State Render Pass to set for its child render passes the depth and stencil testing, transparency, and culling. This render pass sets the rendering state before passing the control to its descendants. After the descendant render passes of a Pipeline State Render Pass execute, Kanzi restores the rendering state. If a Pipeline State Render Pass does not have any descendants, Kanzi does not apply the rendering state you set in that render pass.
Plugin
Portal
Portal node.
PrefabTemplate
A prefab template contains information that is required to create a tree of Node instances.
PrefabTemplateNode
A prefab template node contains information that is required to create node instances: the metaclass of the node, the (initial) property values of the node, information about the bindings and node components of the node, and the list of of child nodes.
PrefabView2D
Prefab view 2D node. Use Prefab view 2D to switch 2D nodes at runtime.
PrefabView3D
Prefab view 3D node. Use Prefab view 3D to switch 3D nodes at runtime.
PrefabViewConcept
ProgressiveRenderingViewport2D
Progressive rendering viewport 2D is a viewport which splits rendering its scene across multiple frames. Progressive rendering viewport is useful when it is required to render complex scene which can take significant amount of time when rendered normally and thus increasing frame time. Progressive rendering viewport renders parts of the scene frame by frame thus decreasing time required to render the scene per frame.
PropertyAnimationTimeline
The Kanzi animation system consists of animations, which define how to animate properties, and timelines, which map animations to time and to the objects that you want to animate.
PropertyDrivenAnimationPlayer
Use Property Driven Animation Player when you want to use a property type to control a keyframe animation. Property Driven Animation Player applies an animation with the time taken from a specific property in the node, to which you attach the player, every time that property changes.
PropertyFieldAnimationTimeline
Kanzi animation system consists of animations and timelines:
PropertyTargetEasingInterpolator
Use a Property Target Easing Interpolator when you want to create a smooth transition between the current value of a property and a value that you set dynamically. In a Property Target Easing Interpolator you can set the easing curve, easing mode, and the duration of the transition. When you set a property value without a Property Target Easing Interpolator, Kanzi applies the value to that property immediately. For example, when you use the Object::setProperty() function, Kanzi applies the value immediately.
PropertyTargetInterpolator
Use a Property Target Interpolator when you want to dynamically set the target value of a property and want to interpolate the current value to the target value over time. With a Property Target Interpolator you can automatically animate the change of a property value to achieve a smooth transition. Without a Property Target Interpolator Kanzi immediately applies a new value to a property. For example, when you use the Object::setProperty() function, Kanzi immediately applies a new value.
PropertyType
An instance of a PropertyType represents a single property type in the Kanzi property system. A property type exists throughout the lifetime of an application, including the property types that you create during the runtime of an application.
PtrIterator
Quaternion
RangeAccumulateBindingProcessor
Runs a binary operation for each value in a range in sequence.
RangeBindingProcessor
Range binding processor is a binding processor for accessing properties from property objects in ranges.
RangeConcept
RenderPass
RenderPass is the base class for Kanzi render passes.
RenderPassPrefab
Use render pass prefabs to create render pass trees that define how Kanzi renders 3D content in your project.
RenderPassView
Use the Render Pass View to instantiate a RenderPassPrefab.
Renderbuffer
Renderbuffers provide the images that can be rendered to by attaching them to the framebuffer as color or depth stencil images. Unlike textures, you cannot access renderbuffers using the samplers from shaders. When you direct rendering to a framebuffer, the depth and stencil tests require either renderbuffer or texture attached to the framebuffer.
Resource
Represents the base class for all resources. This base class contains information related to the type of the resource and the loading status of the resource data. The actual resource data is specific to the sub-classes.
ResourceAcquireTask
An opaque handle to a ResourceManager task.
ResourceBindingProcessor
Resource binding processor creates a resource reference that is used to resolve a string into a resource. The resource binding processor is associated with a resolve instruction in the expression binding, where the binding uses string input to resolve a binding into a resource value. When the resolved resource changes, Kanzi updates the binding.
ResourceDictionary
A resource dictionary is a container that maps resource IDs to resources. A node can refer to resources by setting resource IDs to resource ID properties. You can set a resource dictionary to the node or to any of its parent nodes to define which resources the node uses. You can use a resource dictionary to group similar resources to logical entity, such as themes or locales, and change a resource dictionary of a node to change multiple resources at the same time.
ResourceDictionarySelector
A resource dictionary selector is a type of a resource dictionary that redirects resource queries to its only nested dictionary. This type of dictionary is used internally by Screen to implement switching of locales and themes in theme groups. You can use Screen::setLocale to set the current locale and Screen::activateTheme to activate a theme in a theme group.
ResourceId
ResourceManager
Use the ResourceManager to access and use resources in kzb files. The resource manager maintains kzb files and provides mechanisms to load resources from kzb files.
SRTValue2D
A structure that describes the scale, rotation and translation transformation in 2D space. Rotation is stored as angle in radians.
SRTValue3D
STAGE_ANIMATE
Stage for ticking animations.
STAGE_INPUT
Stage for handling input events.
STAGE_LAYOUT
Stage for laying out the nodes.
STAGE_PRESENT
Stage for presenting the nodes.
STAGE_RENDER
Stage for rendering the nodes.
STAGE_USER
Stage for executing your application code. Includes:
Scene
Scene is a 3D node that is the root node for other 3D nodes.
Screen
The screen represents the metrics of the target device and acts as the root node for the whole node tree.
ScrollView2D
Use the Scroll View 2D node to create an input plane to enable user input from gestures. For example, you can use the scroll message with its parameters generated by a Scroll View node to move a map plane or rotate a mesh.
ScrollView3D
Use the Scroll View 3D node to create an input plane to enable user input from gestures. For example, you can use the scroll message with its parameters generated by a Scroll View node to move a map plane or rotate a mesh.
ScrollViewConcept
SetPropertyAction
SetPropertyAction sets the value of a property of a target node based on:
ShaderProgram
ShaderProgram defines programmable vertex and fragment operations done by the GPU for a draw call.
ShadowEffect2D
Use ShadowEffect2D to apply drop- and inner-shadow post-processing effects to 2D nodes.
Slider2D
Use the Slider 2D node as a building block for a 2D UI control that lets the application user change a numerical value using a visual indicator between a minimum and a maximum value.
Slider3D
Use the Slider 3D node as a building block for a 3D UI control that lets the application user change a numerical value using a visual indicator between a minimum and a maximum value.
SliderConcept
Spline
Spline is a piecewise polynomial curve that defines a path in a 3-dimensional space.
StackLayout2D
Stack Layout 2D arranges its items on a line along the axis you specify in the DirectionProperty. The default value of the DirectionProperty is x axis.
StackLayout3D
Stack Layout 3D arranges its items on a line along the axis you specify in the DirectionProperty. The default value of the DirectionProperty is x axis.
StackLayoutConcept
StandardMaterial
Contains property types of Standard material.
StandardPbrMaterial
Contains property types for the Kanzi Physically Based Rendering (PBR) shaders. Use the PBR materials to create assets that behave realistically in many lighting conditions. These properties represent physical properties on a material and are therefore intuitive when being set. Many properties have a standard and detail variation that you can use to apply material properties in layers. The detail maps use DetailTextureTilingProperty and DetailTextureOffsetProperty to tile differently than the standard map and are typically used to provide fine detail. The Occlusion, Metallic, and Roughness maps are designed to read from different color channels. Therefore it is possible to provide a single texture for all three.
StateManager
State manager for managing states of nodes or application.
Style
Style applying properties, node components and bindings to nodes.
Surface
Surfaces provide images for Framebuffers where to render to.
SysError
TaskDispatcher
You can use TaskDispatcher to schedule execution of callbacks to the UI thread. You can access Kanzi UI objects only on the thread that you create them on. You can wrap code that accesses UI objects with tasks and submit them from any thread to the TaskDispatcher. The UI thread will execute these tasks during its main loop.
TextBlock2D
Text Block 2D displays a small amount of text in 2D.
TextBlock3D
To render a Text Block 3D node Kanzi:
TextBlockConcept
TextBox2D
TextBox2D provides the required overrides to handle 2D rendering and gesture handling for the 2D text input.
TextBox3D
TextBox3D provides the required overrides to handle 3D rendering and gesture handling for the 3D text input.
TextBoxConcept
TextConcept
TextInputManipulator
The text input manipulator handles key gestures used with TextBox nodes to move the cursor, select text, and delete text, and provides the basics of text editing capabilities in Kanzi. For example, you can enable the application user to:
TextResource
Text resource.
Texture
Textures provide images that can be used with image nodes, texture brushes and materials for use in 3D rendering or material brushes.
TextureBrush
Texture brush class.
ThreadObject
ThreadObject represents a weak reference to a Kanzi object.
Timeline
The Kanzi animation system consists of animations and timelines: animations define how the values of specific type change in time, and timelines map the animations to properties of objects you want to animate.
TimelineResource
A Resource wrapper class for animation timelines.
TimerTrigger
Use the TimerTrigger to execute actions at the time interval that you set with the IntervalProperty.
ToSourceBinding
To Source bindings are one-way bindings that have an extra source to which to write the result value. To Source binding is the opposite of a regular one-way binding. To Source binding updates the source property whenever the target property changes.
ToggleButton2D
Use the Toggle Button 2D node to create a 2D UI control that the user can interact with through clicking, tapping, or pressing a keyboard key, and that has multiple toggle states.
ToggleButton3D
Use the Toggle Button 3D node to create a 3D UI control that the user can interact with through clicking, tapping, or pressing a keyboard key, and that has multiple toggle states.
ToggleButtonGroup2D
Toggle Button Group 2D allows users of your application to select only one option from a set of options that are mutually exclusive. Toggle Buttons in a Toggle Button Group behave like radio buttons, where only one Toggle Button can be active at a time. Use the CurrentButtonIndexProperty property to check which Toggle Button in the Toggle Button Group is selected.
ToggleButtonGroup3D
Toggle Button Group 3D allows users of your application to select only one option from a set of options that are mutually exclusive. Toggle Buttons in a Toggle Button Group behave like radio buttons, where only one Toggle Button can be active at a time. Use the CurrentButtonIndexProperty property to check which Toggle Button in the Toggle Button Group is selected.
ToggleButtonGroupConcept
Trajectory
Trajectory defines a series of points following a geometrical path. For example, use a trajectory as align paths for 3d objects or animation paths. You can create trajectory as a spline, circle or line trajectory.
TrajectoryLayout2D
%Trajectory Layout 2D arranges its items along a trajectory.
TrajectoryLayout3D
%Trajectory Layout 3D arranges its items along a trajectory.
TrajectoryLayoutConcept
TrajectoryListBox3D
Use the %Trajectory List %Box 3D node to create scrollable lists of items arranged along a Trajectory.
Trigger
Trigger is the base class for defining events, conditions and actions for content-driven logic programming.
TrySetFocusAction
Use the TrySetFocusAction action to transfer focus to any focusable item in a node tree.
TwoWayBinding
Two-way binding causes changes to either the source value or the target value to automatically update the other.
Unit
ValueAccumulatorBase
ValueAccumulatorBase is the base class for the Value Accumulator implementations for different data types. It defines the common property and message types for different Value Accumulators.
ValueControlledExclusiveActivityHostConcept
Variant
Union container for manipulating an object from a heterogeneous set of types in a uniform manner.
Vector2
Vector with 2 floating point components: (x, y).
Vector3
Vector with 3 floating point components: (x, y, z).
Vector4
Vector with 4 floating point components: (x, y, z, w).
Viewport2D
Use a Viewport 2D to set the size of a render target surface onto which content is projected. Viewport 2D is a 2D node that can project a 3D scene through a camera. Viewport 2D is a special node because it can render both 2D nodes, such as Image, Page, Button 2D, and a Scene, which is a 3D node.
Viewport3D
Use the Viewport 3D node to render 2D nodes in 3D space.
Weak
Represents a weak reference to an instance of C++ kanzi::Object. Can be passed to functions accepting &Object (or its derivatives), yet, if the object is stale, the functions will return an error STALE_OBJECT instead.
WriteLogAction
Use the WriteLogAction class to attach logging functionality to a trigger. When a trigger that has a WriteLogAction attached is set off, the action is executed and it writes the string that you set in the LogTextProperty to the Kanzi Studio Log window in the log category KZ_LOG_CATEGORY_GENERIC.

Enums§

ActivityStatus
Legacy version of enum “kanzi.ActivityConcept.Status”. Defines possible states of an Activity. Activity Host nodes can activate and deactivate their child Activities. This enumeration defines the possible states of an Activity during the the process of activation and deactivation. You can use this functionality to react to changes in Activity status in your application code and in Kanzi Studio. See: Activity, StatusProperty
AnimationEasingMode
Easing mode to use to apply an easing function.
BindingExpressionArgumentType
Runtime expression validator argument type.
CachingMode
Caching modes for nodes.
ColorWorkflow
The Color Workflow for an application.
DataObjectType
Legacy version of enum “kanzi.DataObject.Type”. Type enumerations for different data object types.
EchoMode
Echo modes that specify how to format the display text in a TextEditBuffer.
Either
ErrorKind
ExecutionStatusKind
FocusChainDirection
Specifies the directions of focus move.
FocusOnPress
Focus behavior on node press.
FontHintingPreference
Font hinting options. Hinting refers to the adjustments in the outline-filling process of a glyph, so that the glyph lines up within the rasterized grid.
FontStyle
Font style options.
FontWeight
Font weight options.
GPUResourceMemoryType
Legacy version of enum “kanzi.GPUResource.MemoryType”. Memory upload and RAM preservation strategy for GPU resources.
GraphicsColorWriteMode
List of color write modes.
GraphicsCompareFunction
Renderer stencil modes.
GraphicsCullMode
List of available cull modes.
GraphicsStencilOperation
Renderer stencil operations.
InputMethodAction
Specifies the available input method actions.
InputType
The input type used by the input method listener.
KeyModifier
Key modifier flags. You can set more than one modifier at a time for a KeyEvent.
KeyState
Indicates the states of a hardware key.
KzuPropertyBinaryTargetAttribute
Binding property field (binary file).
KzuTimeLineEntryPlaybackMode
Playback type of the timeline.
KzuViewportCoordinateType
Enumeration for viewport coordinate unit type (exact pixel coordinates / percentages from window)
LayoutDirection
Legacy version of enum “kanzi.StackLayoutConcept.LayoutDirection”. Direction in which stack layout arranges its items.
LogLevel
LogicalKey
Platform independent key enumeration.
MainLoopState
Enumeration for application states.
MemoryStrategy
Legacy version of enum “kanzi.ResourceManager.MemoryStrategy”. %Resource manager memory strategy.
MessageRouting
Message routing modes.
MultisampleCount
Specifies the available numbers of samples for multisample anti-aliasing (MSAA).
NodeComponentState
Legacy version of enum “kanzi.NodeComponent.State”. State indicating if component is attached to a node, detached from any node or in process of attaching/detaching.
PointerButton
Pointer device button identifiers.
PointerState
Indicates the states of a pointing device.
PropertyDataType
Enumeration of data types that can be stored as properties.
PropertyField
Property field.
PropertyNotificationReason
Property notification reason.
PropertyTypeChangeFlag
Each property type can have one or more change flags that indicate the effects of changing the value of that property. For example, when the Text property of a Text Block node changes, Kanzi must recalculate the layout of that Text Block, which is why the TextConcept::TextProperty has the PropertyTypeChangeFlagMeasure.
ResourceLoadTaskType
Legacy version of enum “kanzi.ResourceManager.LoadTask.Type”. The type of the load task.
SamplerAddressingMode
Legacy version of enum “kanzi.Sampler.AddressingMode”.
SamplerFilter
Legacy version of enum “kanzi.Sampler.Filter”.
SamplerMipmapMode
Legacy version of enum “kanzi.Sampler.MipmapMode”.
SelectionBehavior
Legacy version of enum “kanzi.ListBoxConcept.SelectionBehavior”. Behaviors for the List %Box when an item in the List %Box is selected.
SysResult
TaskRecurrence
Legacy version of enum “kanzi.MainLoopScheduler.TaskRecurrence”. Enumeration for task recurrence options.
TextKeyNavigationDirection
Key navigation directions.
TextureType
Texture type.
ThreadKind
TimerRecurrence
Legacy version of enum “kanzi.MainLoopScheduler.TimerRecurrence”. Enumeration for timer recurrence options.
TouchPointState
Indicates the states of a touch point.
TouchState
Indicates the states of touch events.
VariantDataType
Specifies the data types that can be stored as variants.
WindowOrientation
List of window orientations.

Traits§

AsAny
Helper trait which allows getting back a state out of the director.
AsErrorExt
Helper trait with a goal to simplify dealing with Option values.
ConcreteObjectConstraint
Used for statically marking all non-virtual classes which derive from Object. Provides a way of creating default instances of a given class.
DataObjectConstraint
Used for statically defining the allowed types stored in DataObjects.
IAbstractLogger
IAction
IActivityCodeBehind
IActivityConcept
Base class for Activity classes. This class defines common types, properties, and messages for Activity classes. See: Activity2D, Activity3D
IActivityElement
ActivityElement is the base class for all Activity and Activity Host classes.
IActivityHostConcept
Base class for Activity Host classes. This class defines common types, properties and messages for Activity Host classes. See: ExclusiveActivityHost2D, ExclusiveActivityHost3D, ParallelActivityHost2D, ParallelActivityHost3D.
IButtonConcept
Button nodes provide an area that receives key and touch input which Kanzi translates to state events. In addition to the area that receives input, the Toggle Button nodes provide a toggled state.
IClickConcept
Use the %ClickConcept properties to control how nodes handle click and double-click.
ICodeBehind
ICondition
IContentLayoutConcept
Use the Content Layout nodes to present complex content as one element in the UI. You can use a Content Layout node to create a control that adapts to the size of its content, or a control where the content adapts to the size of the control.
IDataDrivenExclusiveActivityHostConcept
Base class for the Data-Driven Exclusive Activity Host classes. This class defines the common types, functionality, and properties for the Data-Driven Exclusive Activity Host classes. See: DataDrivenExclusiveActivityHost2D, DataDrivenExclusiveActivityHost3D
IDataObjectList
Example of a static DataObjectList which only supports insertions. Note that DataObjectList is expected to be used for more complex logic involving RPC, databases or lazy initialization:
IDataSource
IDockLayoutConcept
Dock layout concept base class.
IExclusiveActivityHostConcept
This is the base class for all Exclusive Activity Host nodes. See: ExclusiveActivityHost2D, ExclusiveActivityHost3D.
IFlowLayoutConcept
Flow layout concept base class.
IFontStyleConcept
FontStyleConcept is the base class for the nodes that draw text with different font styles.
IForwardingAction
IGridLayoutConcept
Base class for the Grid Layout nodes.
IGridListBoxConcept
GridListBoxConcept provides the common properties and messages for the GridListBox2D and GridListBox3D nodes.
IListBoxConcept
Properties and messages for list boxes.
IListBoxItemContainer
Use the List %Box Item Container prefab to create common functionality and decoration for all items in a List %Box.
IListBoxItemGenerator2D
IListBoxItemGenerator3D
IListBoxScrollingConcept
Messages for the List %Box nodes that implement scrolling.
IMetaclass
IMipmapGenerationConcept
Use the %MipmapGenerationConcept properties to control mipmap generation material of a Render Pass.
INode2D
INode3D
INodeComponent
IParallelActivityHostConcept
This is the base class for Parallel Activity Host nodes. See: ParallelActivityHost2D, ParallelActivityHost3D.
IPlugin
IPrefabViewConcept
Prefab view concept class.
IRangeConcept
RangeConcept represents a number range with an optional step.
IScrollViewConcept
ScrollViewConcept is the base class that provides the functionality for the ScrollView2D and ScrollView3D classes. Both of these Scroll View types inherit the ScrollViewConceptImpl, a specialization of the base class:
ISliderConcept
SliderConcept contains the trajectory ResourceID property.
IStackLayoutConcept
Stack layout concept base class.
ITextBlockConcept
Base class for the Text Block nodes that you can use to show a small amount of text in your application.
ITextBoxConcept
Use the Text %Box nodes to add single-line text input to your application. Use TextBox3D to add text input in 3D space and TextBox2D to add text input in 2D space.
ITextConcept
TextConcept is the base class for the nodes that implement text rendering.
IToggleButtonGroupConcept
Use a Toggle Button Group to control a collection of Toggle Buttons so that only one Toggle Button can be toggled on at a time.
ITrajectoryLayoutConcept
Base class for TrajectoryLayout classes. This class defines common properties for the TrajectoryLayout2D and TrajectoryLayout3D classes.
ITrigger
IValueControlledExclusiveActivityHostConcept
Base class for the Exclusive Activity Host classes. This class defines the types and properties for the Exclusive Activity Host classes for which the activation of the child Activities is controlled by a property or a DataObject value. See: ExclusiveActivityHost2D, ExclusiveActivityHost3D.
Inheritable
Represents Kanzi classes that can be inherited from.
Inherits
Inheritance relationship for Kanzi classes.
MessageArgumentsConstraint
MetaInherits
Inheritance relationship for Kanzi classes containing metaclass in their definitions.
MetaclassConstraint
Used for statically marking all classes which provide type inspection through Metaclass. Provides a way of getting a static metaclass of a given type.
ObjectConstraint
Used for statically marking all classes which derive from Object. Provides a way for downcasting objects to more specific types.
PropertyTypeConstraint
Used for statically defining the allowed types stored in PropertyTypes.
ResourceLoadTask
Use this trait to implement the load tasks that load new resources. A load task is split into an optional load and mandatory finish functions. The load function may be called in a background worker thread, instead of the main thread. And so only thread independent work should be done here. While the finish function is guaranteed to be called in the main thread.
ResourceProtocol
Use this trait to implement the protocol for loading resources.
ResourceReloadProtocol
Use this trait to implement the protocol for reloading GPU resources.
UnsafeIterator
Trait used for iterating over iterators returned by Kanzi. Note that next method is unsafe, since we cannot statically ensure that a given iterator wasn’t invalidated by underlying collection modifications.
VariantConstraint
Used for statically defining the allowed types stored in Variants.

Functions§

log
The standard logging function.
log_debug
The standard logging debug function.
try_execute
try_get_task_dispatcher
Returns the TaskDispatcher stored in global static storage.

Type Aliases§

AbstractDataObject
Generic representation of DataObject.
AbstractMessageType
Generic representation of MessageType.
AbstractPropertyType
Generic representation of PropertyType.
AbstractVariant
Generic representation of Variant.
Nanoseconds
Result

Attribute Macros§

bridge
Generates a C++ bridge for a given struct with functions defined in the enclosed implementation block.
class
Registers a native Kanzi class inheriting from a specific Kanzi base class.
methods
Part of the kanzi::class procedural macro suite.
overrides
Part of the kanzi::class procedural macro suite.
plugin
Registers a native Kanzi plugin.
state
Part of the kanzi::class procedural macro suite.
test
Declares a function as a test with access to the newly initialized Kanzi test runtime.