Kanzi 3.2 release notes¶
New features¶
These features are new in Kanzi 3.2:
Animation system
Kanzi 3.2 comes with the new animation system that is more flexible, efficient, robust, easier to use, and enables you to create animations you could not create with the old animation system. See Animation system and Creating animations and timelines using the Kanzi Engine API.
Easing functions
In the state manager you can now use easing functions and easing modes to animate the transitions between states. See Using state transitions.
Feature improvements¶
The state manager now includes:
Start Time property you can use to set the delay after which the transition to that state starts.
Improved 3D transform interpolation so that you can use in transitions either the shortest or the longest path.
See Using state transitions and Animation system.
You can now set in your Kanzi Studio project the textures you want to use as the default single and cubemap textures, or remove them completely to decrease the size of the exported kzb file. See Setting the default assets and Deleting the default textures and images.
Added support for prefiltered cubemaps so that you can provide cubemap faces and their mipmaps in a single .dds image. For example, this allows you to create prefiltered mipmapped radiance environment map to simulate environment reflections, and irradiance cubemap for diffuse lighting of models.
Because you can now use .dds files for prefiltered cubemaps and mipmaps, Kanzi no longer supports the .dxt file format. See Importing images and Using cubemap textures.
Enforced stricter requirements for the cubemap faces. Cubemap faces now have to be square and of the same size. See Using cubemap textures.
The default value of the Mipmap Mode property is now Base instead of Nearest. In Kanzi Studio enable the generation of mipmaps for images in textures that need mipmaps. See Using mipmaps.
Several significant Kanzi Studio performance improvements when importing and working with localization tables.
Improved support for PSD layers with long names.
Improved support for long file system paths.
Changed the 3D node picker in the Preview to avoid picking the current Camera node and re-enabled the depth buffer in the 3D picker.
Disabled the default clipping in all 2D layout nodes.
API changes¶
In addition to the Kanzi Engine changes related to feature improvements, these are the changes to the Kanzi Engine API:
Added the new animation system. See Animation system and Creating animations and timelines using the Kanzi Engine API.
Converted and improved the renderer API to C++. See Kanzi 3.2 migration guide.
Concluded the conversion of property and message types to C++.
Changed the Lightness (L) nodes and mesh morphing to work without struct and array property types.
Removed struct and array property types.
Concluded the conversion to use only normal
shared_ptr
's to track resource objects.Converted constraints to use bindings.
Exposed frequently used
std
andboost
classes and functions through the Kanzi namespace. See Kanzi 3.2 migration guide.Added window z-order integer property in
KzsWindowProperties
. Note that valid value range is specific to the platform where you run your application.Always use RGBA format for render targets. RGB texture format is not guaranteed to be renderable in OpenGL ES.
Opaque Color Brush is rendered even when alpha is set to zero.
Added
logExtensions()
to theDefaultRenderTarget
.Added single API to print OpenGL information
Renderer::logOpenGLInformation()
. This replaceskzsLogOpenGLInformation()
andRenderer::printInfo()
.Improved
Image2D::updateRenderOverride()
.RenderStateResourceContainer()
now supports Framebuffers.Improved the separation of the default assets of application and the Preview.
Integration:
Added Integerity WSEGL and Mali fb native window support
Integrity GHS FB API windowing system
Integrity GHS GBM windowing system
Integrity RCar-H2 build configuration
Upgraded these libraries used by Kanzi:
libjpeg to version 9a
libpng to version 1.2.52
zlib to version 1.2.8
Documentation¶
Added new tutorials:
Learn how to create a toggle button. See Tutorial: Creating a toggle button.
Learn how to create a slider. See Tutorial: Creating a slider.
Learn how to rotate a with a swiping gesture a 3D model in your application. See Tutorial: Rotate a 3D model.
Learn how to make your user interface respond to the changes of the device screen resolution. See Tutorial: Making applications with dynamic layout.
Added instructions on how to use Morph to change one shape into another through a seamless transition. See Using Morph resources.
Updated the documentation visual style to make it easier to use and read.
Fixes in Kanzi Studio¶
Kanzi Studio now correctly merges or imports triggers from projects.
Kanzi Studio now correctly converts Boolean property types to enums.
When importing or merging projects, project data files are now correctly imported or merged.
The Node tool now scales nodes based on field of view.
You can now import the fonts in the OTF format using the font importer in Kanzi Studio.
Kanzi Studio now correctly creates projects even when non-Latin characters are in the project path.
Kanzi Studio now correctly removes the Layout Transformation property on the Screen node.
When you change a state the Preview now correctly updates the Preview camera.
The Preview Text Block 2D tool now correctly works with the Text Block 2D nodes in the Prefabs.
Kanzi Studio now correctly generates normals when in Library > Meshes you right-click a mesh and select Generate Normals.
The Pages now shows all Page nodes regardless of the zoom level and number of Page nodes.
The Pages is now synchronized with the changes in the Node Tree.
The Pages window no correctly shows the lines connecting the Page nodes.
The copy and paste keyboard shortcuts now work properly in the Pages.
Kanzi Studio no longer crashes when you import localization tables with missing properties.
Shader code no longer crashes Kanzi Studio.
When you undo removal of a property, the Preview now correctly shows the action of undoing.
Kanzi Studio now pastes a copied action from a trigger.
Kanzi Studio now correctly opens the Kanzi documentation on Windows 10.
Using Set Property action on property attributes no longer causes the Preview to crash.
Using a resource ID as a value for the Style property now works correctly.
Kanzi Studio now correctly moves around localization tables when you use your keyboard keys.
Binding Editor no longer adds Node3D for 2D node Render Transformation and Layout Transformation properties.
When you create new state groups in the State Tools, Kanzi Studio no longer creates conflicting states.
Using drag and drop in the Binding Editor for state controlled properties in state editing mode now works correctly.
Kanzi Studio now correctly resolves identical trigger actions.
You can now add triggers to state managers using the context menu in the Node Components.
You can now set the Task Name for Preload Resources action.
When you rename a material custom property type, the properties that use that property type do not lose their values anymore.
The Performance HUD now shows more accurate data.
After renaming an alias Kanzi Studio now shows the correct name in all references to that alias.
Fixed the issue that prevented pasting triggers to several nodes at once.
Fixed several issues related to the Pages.
Fixed several issues encountered when working with the localization content.
Fixed several issues to improve deploying Kanzi applications to Android.
Fixed several issues to improve the functionality and usability of the Node tool.
Find Project Item now correctly lists Prefabs when you use Advanced Search.
Kanzi Studio now correctly prompts when you try to close a project with unsaved changes.
Fixed several issues that caused Kanzi Studio to become unstable or crash.
Fixed the leak that caused Kanzi Studio to become sluggish when used for a long time.
Fixed the issue that prevented Kanzi Studio from starting on computers with the .NET Framework 4.6 installed.
Fixed the issue that caused the Camera node to move after saving the project when the free camera is in use.
Fixes in Kanzi Engine¶
Fixed the corrupted command-line arguments in Win32 release build.
Added the detection of Mali GPUs to disable broken half-float vertex attribute on those GPUs.
executeNavigationEntry()
no longer invalidates the iterator.Disconnected
previewProperties.extensionOutputEnabled
fromApplication::initializeProfiling()
. NowApplication::mainOverride()
handlesextensionOutputEnabled
after context GL is created.Fixed the issue where meshes that use invalid textures did not get rendered.
Set the
Node2D::createFramebuffer()
to always use the RGBA texture format because the RGB format is not always supported.Fixed the issue that caused the Navigate to Page action to loop when the target was the RootPage node.
The Grid List Box node no longer ignores the Recognition Threshold property.
Fixed the handling of render target textures in brushes and materials.
The
EmptyNode2D::create
now creates the color brush automatically.Fixed the issue that prevented the Color Brush from restoring after resume.
The Scroll View node Scroll Bounds Minimum and Scroll Bounds Maximum properties now work properly.
Fixed the issue that caused Kanzi Engine to ignore the Message Source set in Kanzi Studio.
Trajectory List Box 3D using Item containers now works correctly with Empty Node nodes.
Kanzi now prints the list of EGL extensions.
Fixed the memory leak and corruption in the Glyph cache.
Fixed the Toggle Button issue that caused the State Manager to react only when the Controller Property value is present.
The
Node2D_plugin
example now works on Android.The thumbnails in the State Tools are now rendered correctly.
Fixed the issue where scrolling the mouse wheel sets of the Is Down controller property.
Fixed the issue that caused Kanzi Engine to misbehave when you defined a property with the same name but different data types in multiple kzb files.
Re-enabled the stripping of debug symbols in Android release builds to decrease the size of .apks. Stripping is done for project output .so.
Fixed the issue that ignored anisotropy when a texture is loaded from kzb file.