Kanzi 3.9.14 release notes

Package Manager

  • Introduced the Kanzi Package Manager, enabling sharing and management of reusable components and assets, supporting cross-platform application and plugin development, and simplifying installation, updates, and removal of project dependencies.

    See Package Manager.

    Note

    The Package Manager is available only for Kanzi 3.9.11 and later.

Kanzi Rust API

  • Introduced the Kanzi Rust API, which adds ready-made rich idiomatic bindings to the Kanzi Engine C++ API, enabling you to use the Kanzi Engine in your Rust applications. This version covers an initial subset of the most commonly used features.

    See Rust.

Kanzi Android Service

  • Introduced the Kanzi Android Service framework, enabling you to use the same Kanzi instance and resources across multiple Android applications. Additionally, this enables seamless transitions between applications that have shared Kanzi content.

    Example of cross-app transition animation

    See Developing with the Kanzi Android Service.

Activities

  • Introduced the OptimizeMemory parameter for Activities. When enabled, Kanzi automatically unloads resources used by these Activities once they are deactivated.

    See Virtualization.

Kanzi Studio asset import performance optimizations

  • Kanzi Studio no longer loads an image solely to verify its validity.

  • Kanzi Studio no longer updates the mesh data version during project load.

  • Kanzi Studio now avoids loading mesh data when cloning meshes.

  • Kanzi Studio now avoids reloading mesh data from disk if it is already available in memory.

  • Kanzi Studio now caches mesh variables to avoid redundant mesh loads, if the mesh has not changed on disk.

Profiling

Kanzi Engine C++ API

  • TaskDispatcherBase::executeTasks now throws an exception if called again while it is still executing, or is called from a thread that the dispatcher doesn’t belong to. Previously, doing either resulted in undefined behavior.

Platforms

  • Added a configuration option to enable additional debug logs for the Platform layer. See PlatformLoggingEnabled.

  • On Linux DRM/GBM platforms, the DeviceIdentifier setting now takes precedence over DRM module identification. Previously, DeviceIdentifier was only used if all DRM modules failed to open.

  • On Linux DRM/GBM platforms, Kanzi now tries to identify additional DRM modules. As a result of this, the module identification order may have changed.

  • On QNX, Kanzi now allows setting SCREEN_PROPERTY_SELF_LAYOUT for windows. See QnxWindowSelfLayout

Documentation

  • Added the Kanzi Rust API documentation, covering an initial subset of the most commonly used features, and API reference documentation. See Kanzi Rust API.

  • Added the Kanzi Physical Camera Plugin documentation, covering installation and usage of the plugin. See Kanzi Physical Camera Plugin

  • Added a Table of Contents filter in all documentation sets, making it easier to find topics when you know what you are looking for. Use the:

    • Forward slash key / for quick access to the Table of Contents filter.

    • Escape key Esc to reset the filter.

    ../../_images/table-of-content-filter.png
  • In introduction of the Table of Content filter, repositioned the DocSearch box to the top right of the page, and the light and dark mode toggle to the footer.

  • Added an Ask AI button to the documentation pages, allowing you to ask questions about the documentation content and receive AI-generated answers based on our documentation sources.

  • Added a Copy page button to the top right of the documentation pages, allowing you to access and benefit from our documentation more effectively using AI capabilities. See Using the Kanzi MCP server

  • The Android data source example now matches the tutorial code.

Kanzi Studio usability

  • In the Animation Clip Editor, when using the Move tool move-tool to select a node or curve, Kanzi Studio now selects the control point closest to the cursor if there are more than one.

  • In the State Manager, when you try to set the Mesh Material property state, Kanzi Studio now issues a warning instead with workaround instructions.

Changes

  • Upgraded ICU library from version 62.1 to 69.1. Removed unused ICU data and features, reducing library file size by up to 4 times, depending on the target platform.

  • Updated application configuration handling for booleans. Kanzi now only accepts false, true, 0, and 1 as valid values for boolean configuration options.

Notable fixes

Kanzi Engine

  • Fixed the issue that caused Kanzi to miss information about Timer subscriptions count and Recurring Tasks count in the Performance HUD. (FMW-57)

  • Fixed the issue that prevented dragging of text selection handles that spilled outside the borders of the Text Box area. (FMW-192)

  • Fixed the issue that caused Kanzi to terminate with assertion in debug mode or to log GL_INVALID_OPERATION warnings in release mode, when a Text Block foreground Color Brush alpha is set to zero. (FMW-282)

  • Fixed the issue that caused Kanzi to terminate with assertion in debug mode, when a Text Box 3D Selection Background Color or Composition Background Color alpha is set to zero. (FMW-341)

  • Fixed the issue that caused Kanzi to ignore TextBox2D opacity when rendering text selections with cursor and selection handles prefabs set to No Prefab. (FMW-565)

Kanzi Studio

  • Fixed the issue that caused Kanzi Studio to hang when importing a Kanzi Engine plugin with bad metadata. (FMW-51)

  • Fixed the issue that caused the line numbers and its corresponding text to be misaligned in the Bindings Editor, when using a custom display scale system setting. (EDITORS-84)

  • Fixed the issue that sometimes caused Kanzi Studio to crash when reverting multiple changes to Brushes at once. (TESTING-567)

  • Fixed the issue in Kanzi Studio that prevented the Animation Clip Editor window title from updating accordingly when renamed in the Library. (EDITORS-60)

  • Fixed the issue in Kanzi Studio that caused an exception error when you tried to download an example project, after leaving the Quick Start window open for a considerable time. (FMW-132)

  • Fixed the issue that prevented Kanzi Studio from reporting Code Behind building notifications during startup of the Preview. (FMW-55)

  • Fixed the issue in Kanzi Studio that after reopening a project always marked as outdated Kanzi Engine plugin metadata with new lines in tooltips. Kanzi Studio now also warns when metadata contains unsupported characters. (FMW-217)

  • Fixed the issue that prevented downloading of an updated Example or Tutorial, if the old file remained in cache. (EDITORS-94)

  • Fixed the issue that caused a TextBox3D node to process user input keys in the Preview window when the editing mode is enabled. (FMW-350)

  • Fixed these bindings issues (FMW-648):

    • Fixed the issue that prevented a binding source property modification from updating a target property, if a parent node of a source node was reparented or renamed, or if a source node itself was reparented after reopening a project.

    • Fixed the issue that prevented validation on a node with bindings, if a parent node of a source node was moved into prefabs.

  • Fixed an issue that caused WriteOnlyDiskFile to incorrectly treat filenames with non-ASCII characters on Win32. (RENDERING-2175)

  • Fixed the issue that caused Kanzi Studio to generate an incorrect KZB name in the application code when the project name contained unqualified characters like a dash or a space. (FMW-650)

  • Fixed the issue that caused Kanzi Studio to log a misleading message as it sets the default material, when creating a new project. (FMW-655)

  • Fixed the issue that caused Kanzi Studio to terminate with a runtime exception when resolving project merge conflicts on Smart Materials. (FMW-670)

  • Fixed the issue that caused Kanzi Studio to terminate with an exception in the Activity Browser, when you tried to create a property with a name beginning or ending with the . character, or with multiple . characters next to each other. (FMW-695)

  • Fixed the isssue that allowed you to add redundant properties to triggers in Kanzi Studio. (PRODUCT-1043)

Kanzi Engine C++ API

Kanzi Android framework (droidfw)

  • Fixed the issue that caused a KanziViewAdapter instance to continue to render and process user input, after being hidden with KanziViewAdapter.handleVisibilityChange. (ANDROID-1298)

  • Fixed the issue that caused duplicate native libraries to be included in platform package builds for Kanzi Android framework (droidfw) AAR, and thereby unnecessarily increasing its size. (ANDROID-1039)

  • Fixed the issue that caused Kanzi Android framework (droidfw) to wake from suspension due to unexpired Kanzi timers, causing redundant frames. (ANDROID-1134)

Kanzi Engine Lua API

  • Fixed the issue that caused Kanzi Engine Lua API to fail on scons-built dynamic platform packages. (PRODUCT-1378)

Platforms

  • Fixed the issue that caused debug messages related to the iType font libraries to be logged even when its debug output was disabled. (DEVOPS-1483)

See also

Kanzi 3.9.14 migration guide

Known issues