Kanzi 3.5 migration guide¶
Use this migration guide to update Kanzi applications from Kanzi 3.4 to Kanzi 3.5.
The default 3D text material¶
The default 3D text material now takes into account the Blend Intensity property. Check the Text Block 3D nodes using the default 3D text material and modify the content accordingly to get the desired rendering result.
Property precedence¶
Property values with class priority are no longer inherited.
Animation¶
Kanzi 3.5 introduces changes to the animation system which require you to update projects where you use keyframe animations.
Property-driven animations¶
Replace the property-driven animations in projects created with earlier versions of Kanzi with the Property Driven Animation Player. See Creating property-driven animations.
Replacing the Background Animation functionality¶
The Background Animation property is no longer available. Use the Animation Player to play keyframe animations you previously played using the Background Animation property. See Using keyframe animations.
Replacing the Play Animation action¶
Play Animation action is deprecated and will be removed in the next version of Kanzi. Change your Kanzi Studio projects to use the Animation Player and the animation playback actions to control your animations. See Using keyframe animations.
Target keyframes¶
Target keyframes are no longer available. Use the Property Target Interpolator to animate an object towards a dynamic target value. See Interpolating property values.
Keyframe classes¶
Keyframe classes use unique_ptr
instead of shared_ptr
.
Resource properties¶
In earlier Kanzi versions nodes references all resource through resource ID properties. Resource ID is a string that was mapped by the node to an actual resource. Resource ID could contain a URL string or an ID string that was mapped to an URL through a resource dictionary. In Kanzi 3.5 nodes reference resources through properties that contain direct pointers. This changes:
The way you declare property types for resources.
The way to read and write property values are read and written
Using of ID to URL mapping.
Declaring property types¶
In Kanzi 3.4 when you wanted a property to reference a resource, you used resource ID data type to declare the property type. For example,
PropertyType<ReseourceID>
In Kanzi 3.5 use
PropertyType<ResourceSharedPtr>
These properties accept and return resource pointers directly. For example, to set a texture to an Image node use
Image::setProperty(Image::TextureProperty, textureResource).
Reading and writing property values¶
Acquire resource from resource manager and set it as a property value.
Setting up indirect resource references¶
Changed the way you set up the mapping of a resource ID to a value in a resource dictionary.
For example, in earlier versions of Kanzi, to set the Image property value to a resource ID, you used
imageNode->setProperty(Image2D::ImageProperty, resourceId);
In Kanzi 3.5, to set the Image property value to a resource ID, use
BindingSharedPtr binding = Binding::create(domain);
binding->setSourceResource(resourceId);
binding->setTargetDynamicObjectProperty(".", Image2D::ImageProperty, PropertyFieldWhole);
imageNode->addBinding(binding);
Scroll View coordinates¶
The coordinates of Scroll View 2D and Scroll View 3D nodes have changed.
General¶
Property types require
kzMakeFixedString
for their name.ResourceDictionary::acquireResource()
now requires correctly formatted URL.Node::acquireResource()
now requires ResourceID.kzuMatrix4x4
changed toMatrix4x4
.