Kanzi 3.4 release notes

New features

These features are new in Kanzi 3.4:

  • Support for OpenGL ES 3.0

    Kanzi now supports OpenGL ES 3.0. This allows you to:

    • Use HDR images and cubemaps in .hdr, .exr, and .dds file formats.

    • Use multiple color attachments in a render pass.

    • Use color space setting for color uniforms in material types.

    • Use new texture and raw image formats.

    See Using OpenGL ES 3.0+ in Kanzi.

  • Kanzi Lite

    You can use Kanzi Studio to create projects and export a kzb file for Kanzi Lite projects. Kanzi Lite allows you to develop Kanzi applications for proprietary graphics backends.

Feature improvements

Improvements to the Page node and Pages window:

  • The Page node is now split into two nodes: Page and Page Host node. This significantly improves the transition logic.

  • The Transitions are now an integral part of the Pages window. This enables you to work with the user interface flow of your application in a single space.

    ../../_images/page-transition-editor.png
  • Transitions between Page and Page Host nodes are now resources you an access in the Library. This enables you to create transitions you can reuse.

    ../../_images/library-page-transitions.png
  • Zooming in the Pages and State Transition Editor windows zooms at the location of the pointer.

See Using the Page and Page Host nodes.

Improvements in bindings:

  • Added the REM function in addition to MOD function so that you can control the rounding of the calculation:

    • REM calculates the remainder when one number is divided by another rounded towards zero. See rem (remainder).

    • MOD calculates the modulo that is the remainder when one number is divided by another using the mathematical modulo congruence function. See mod (modulo).

  • The Binding Editor now provides more details when it encounters an error.

See Using bindings.

Instead of matrix Kanzi now uses quaternion for rotation. The main benefits of quaternions are that they allow a more consistent way of describing rotations, cannot go into gimbal lock, and allow defining interpolations between arbitrary rotations. This change affects:

  • Binding expression syntax for creating transformations. See Bindings expressions reference.

  • In the Set Property action you cannot anymore use the Rotation X, Rotation Y, or Rotation Z.

  • In the Properties you cannot edit the transformations as a matrix.

  • Trigger conditions for rotation are no longer available.

Improvements to the animation system:

Added clipping, playback mode, and repeat functionality in the Kanzi Engine API. See Timeline and Configuring timelines using the Kanzi Engine API.

You can now take into use the new Kanzi animation system in Kanzi Studio too. The new animation system is more flexible, efficient, robust, easier to use, and enables you to create animations you could not create with the old animation system. Take the new animation system into use if your project is not affected by the current shortcomings of the new animation system. See Known issues.

You can select which animation system you want to use in Kanzi Studio in Project > Properties by setting the Animation System property:

  • Default sets the project to use the old animation system.

  • Experimental sets the project to use the new animation system.

../../_images/project-properties2.png ../../_images/project-properties-animation-system.png

You can now switch between OpenGL and OpenGLES at runtime. See Graphics library.

Kanzi now uses glslang for shader validation.

Kanzi now supports ETC2 compression. See Compressing textures.

For a Render Target Texture you can use the Automatic setting to set the size of the Render Target based on the size of the node where it is used. Note that you cannot use this feature yet with a Render Pass Prefab. See Using render target textures.

Added snap functionality to the Node tool in the Preview. See Editing your application in the Preview.

For state transitions you can now configure the parameters for the Back, Elastic, Exponential, and Power easing functions. See Configuring easing functions.

../../_images/configure-easing-functions.png

When localizing your application, in addition to the standard locale names, you can now also use any string for locale names. See Using locales.

../../_images/select-new-locale-name.png

You can now create a new property type using the context menu in the Properties.

../../_images/create-property-in-properties.png

Optimized the size of kzb files by removing redundant system property information.

New design for these items:

  • The New Project dialog

    ../../_images/new-project-dialog.png
  • The Quick Start dialog

    ../../_images/quick-start-dialog.png
  • The default background image

    ../../_images/view-in-the-preview-position-and-zoom-reset.png
  • Dropdown menus

    ../../_images/appearance-create-color-brush.png

Changes

  • Kanzi libraries are now available only for Visual Studio 2013 and 2015. See Kanzi libraries.

  • Kanzi Studio now uses .NET Framework 4.6.1.

  • Updated the IMG wrapper to IMG SDK 4.0.

  • iMX6, Linux x86, Linux ARM, and Linux ARM HF platform configurations and libraries are now provided under a separate agreement.

  • The Node tool in the Preview tool default setting is now Local Space.

API changes

  • Added multitouch support to the Scroll View and List Box nodes.

  • Added multitouch support for zoom in the Scroll View nodes.

  • Added to scripting functions removeLocalValue, goToState, goToPreviousState, goToNextState, trySetFocus.

  • New Texture API.

  • Refactored the composition API in the Node2D class.

  • Improved memory allocation for composition render targets.

  • Optimized memory of Node2D class and derived classes.

  • Node2D and Node3D classes now use SRTValue2D and SRTValue3D instead of the Matrix3x3 and Matrix4x4 to describe transformations.

  • Converted the message argument API to C++. C API for this functionality is no longer available.

  • Changed the message type declaration API. You are now required to use fixed string.

  • Metaclass requires use of fixed string.

  • Updated the libPNG library to 1.6.21.

  • Added the Word Wrap and Constrain Content Height properties to the Text Block node.

  • Added the data list item generator for the List Box 3D nodes.

  • Added perspective transform for nodes.

  • The focus is set to the Screen node by default.

  • When any of the button nodes have focus, they now by default receive input from the keyboard keys Space, Enter and Enter on the numerical pad.

Documentation

  • Added a tutorial to show how to use JavaScript scripts to create a demo mode for your Kanzi application.

  • Added a tutorial to show how to work with the Page and Page Host nodes.

  • Added a tutorial to show how to work with state managers and State Tools in Kanzi Studio.

  • Reworked the localization tutorial. Now there are two tutorials:

  • Added the documentation for the Kanzi Studio plugin interface to show how to work with the state manager and resource dictionaries. See Kanzi Studio plugin API reference.

  • Improved the content covering the state managers. See State manager.

Fixes in Kanzi Studio

  • When you now resize the Preview it keeps the content centered.

  • Kanzi Studio now shows changes in data source properties when you reload the data source plugin.

  • Kanzi Studio now lists aliases in the Navigate to Page actions available in the scope of the selected node.

  • Fixed the issue which caused overwriting of shaders when Kanzi Studio crahes.

  • Fixed the issue which prevented skinning support of content imported from .fbx files.

  • Fixed the issue which prevented Kanzi Studio to create projects with Kanzi Engine plugin when using non-ascii characters in the project name.

  • Kanzi Studio now correctly shows the palette images with transparency.

  • Clicking the Apply button in the State Transition Editor does not close the State Transition Editor anymore.

  • Fixed the issue which prevented setting value of a text type property to a Text Block Text property.

  • Fixes the issue which prevented Kanzi Studio to show Alias in the creation context menu when you press Alt and right-click a node in the Node Tree.

  • Fixed the issue which caused the deletion of the .psd file when canceling the import of that file.

  • Fixed the issue which prevented the use of quotation marks in the shader compiler path.

  • Fixed several bugs which significantly improves the stability of the Preview and Kanzi Studio.

Fixes in Kanzi Engine

  • Fixed the issue which caused the ResourceManager.setDefaultMemoryStrategy(OptimizeMemory) in multi kzb file to fail.

  • Fixed the issue for default subpage behavior in the navigation logic.

  • Fixed the issue which caused the tryAcquireResource to throw exceptions for file:// URLs for missing files.

  • Fixed the issue which caused the Scroll View node to freeze.

  • Fixed the issue which prevented the custom messages to work.

  • Fixed a leak related to the FreeType library.

  • Fixed the issue that prevented the setForegroundBrush to set the color twice.

  • Fixed a leak in the Renderer.

  • Material shader is now correctly deployed on attaching it in a material brush.

  • Fixed the issue which caused the blending to not be applied.

See also

Kanzi 3.4 migration guide

Known issues