Kanzi 3.9.7 release notes

Activities and Code Behind

  • In the Activity Browser, when an Activity node is the root node, Kanzi Studio now issues a warning. In such cases, Kanzi Studio automatically sets the Activity Status property of that Activity to Active. Take that into account, if you want to use that Activity as a root Activity in your application.

  • In Kanzi Studio, you can now create an Activity Property of type String.

    For example, this enables you to preserve text that a user has entered in a text box when the Activity is deactivated.

  • When resource loading fails during the activation of an Activity, Kanzi now logs a cause of the error.

  • Kanzi Studio now builds Code Behind from the Activity Browser only for the current Preview configuration.

  • Kanzi Studio now does not allow you to rename a Kanzi Code Behind plugin after you create the plugin.

Bindings

List Box and Scroll View

Meshes and morphing

  • Meshes now support the binormal attribute semantic. This enables you to use the binormal channel that is stored in the mesh data, instead of generating the binormal in the shader.

  • Kanzi now supports activating any number of morph targets at once. See Using Morph resources.

Rendering

  • Introduced the Render target > Multisample Level (Node2D::MultisampleLevelProperty) property that enables you to apply multisample anti-aliasing to a 2D node whose content Kanzi renders to a composition target. See Multisampling 2D content.

  • You now can use ranges as input parameters to uniforms in a shader that you use to render a brush. When you use a range as a parameter to an array uniform, Kanzi fills the array with elements from that range.

Resource management

You can now set in the application configuration how to handle GPU resources when your Kanzi application is in the paused state. For example, you can set your application to destroy all GPU resources in the paused state.

On Android, the GPU resources become invalid by default. On other platforms, Kanzi no longer invalidates the GPU resources by default.

See HandleGPUResources.

Kanzi Studio usability

  • When you create a project with the Android application or Android application with Java plugin template, you can now set the name of the Android package for the project and, when you add Code Behind, of the Code Behind package. See Developing with the Kanzi Android framework (droidfw).

    ../../_images/new-project-android-application.png ../../_images/android-code-behind.png
  • You can now open an Android project in Android Studio from Kanzi Studio.

    ../../_images/open-project-in-android-studio.png
  • Added a command that lets you copy the startup prefab URL of a project to your clipboard.

    ../../_images/project-copy-startup-prefab-url.png
  • For custom property types added a context menu command that enables you to select that property type in the Library window.

    ../../_images/custom-property-type-quick-navigation.png
  • Highlights of a release are now presented directly in Kanzi Studio.

  • You can now let Kanzi Studio send to Rightware anonymized usage data that helps us understand how we can improve Kanzi Studio. See Telemetry.

Kanzi Engine C++ API

Kanzi Java API

  • Kanzi Java API now supports properties with enum data types. To migrate your Kanzi application, see Support for enum properties.

  • When you import Kanzi Engine Java plugin files that are not in the lib/java/<BuildType>/ path, Kanzi Studio now marks them as invalid.

Kanzi Android framework (droidfw)

  • Updated the Kanzi Android framework (droidfw) project templates to use Gradle 7.3.3 and Android Gradle Plugin 7.2.2.

    See Changes to Java Code Behind.

Kanzi Studio plugin interface

Platforms

  • Added an application configuration that enables you to set on the platforms that use the GBM windowing system which graphics card you want your Kanzi application to use. See DeviceIdentifier and Changes to Graphics Output and Desktop.

  • Updated Integrity platform packages to use HarfBuzz 5.3.1.

kzb version

  • Changed the version of the kzb file format to 25.0.

Documentation

Notable fixes

Kanzi Engine

  • Fixed the issue that caused Kanzi to render small quads in place of empty glyphs, such as space characters. (143042)

  • Fixed the issue that caused the last focused node of a focus scope to always get logical focus when becoming a focus scope. (426990)

  • Fixed the issue that caused a Toggle Button Group to set in the ToggleButtonGroupConcept::ToggledMessage an incorrect index for the active Toggle Button. (436417)

  • Fixed the issue that prevented the Set Property Action from working when you set a resource as the Source Item, and restricted items in Target Item to nodes. (441283)

  • Fixed the issue that caused two property change notifications instead of one when Kanzi attaches a modifier binding. For example, when Kanzi executes an Apply Property Action. (443038)

  • Unified the lookup contexts for a binding, which slightly decreases memory footprint and increases performance. (443610)

  • Fixed the hierarchy of BindingProcessor in the Kanzi Java API. (444467)

  • Fixed the issue that prevented the Kanzi Studio Log window from showing Unicode characters correctly in Kanzi Engine log messages. (445591)

  • Fixed the issue that caused an Activity in an Exclusive Activity Host to remain active when in some cases during an Activity transition you activate another Activity. (449575)

  • Fixed the issue where after rendering an instanced mesh, Kanzi rendered subsequent 2D objects multiple times. (451135)

  • Fixed the issue that caused Kanzi to terminate when you use the FreeType font engine to render TrueType fonts with fixed-size bitmap glyphs. (451578)

  • Fixed the issue that caused Kanzi to terminate when you use the iType font engine to render TrueType fonts with colored bitmap glyphs. (451644)

  • The Performance HUD now reports the triangle count for all instances of meshes. (451874)

  • Fixed the issue that prevented Kanzi from mapping in a mesh the tangent channel correctly if the bitangent channel was available. (452375)

  • Fixed the issue that caused the updateVertexAttributeOffsetsAndVertexSize and updateVertexAttributeStrides functions to incorrectly update vertex format info for an instanced Mesh. (452578)

  • Fixed the quadratic ResourceManager::purge time complexity and linear resource removal time complexity to improve resource removal and ResourceManager::purge performance. (454362)

  • Fixed the issue that caused a file descriptor leak for each loading of a kzb file. When Activities with Kanzi content were frequently created in the same process, this caused Android to terminate the application when the number of file descriptors in the process reached an upper limit. (454389)

  • Fixed the issue that prevented localization from working when you override the Metaclass of the Screen class. (455169)

  • Fixed the kzCameraNearFarPlane shader uniform. (455708)

Kanzi Studio

  • Fixed the issue that broke Kanzi Studio functionality when you rename a package of an Android application that uses Java Code Behind. (410677)

  • Fixed the issue that required Kanzi users to install Visual Studio 2017 to use the Code Behind feature. (422915)

  • In the Write Log action, fixed the <EventName> macro to print the name and message type of a message trigger, instead of Kanzi.MessageTrigger. (435792)

  • Kanzi Studio no longer fails to import in a glTF file mesh attributes that use application-specific semantics. Kanzi Studio uses for these attributes the CUSTOM semantic and names them after the glTF attribute semantic. (445105)

  • In the Activity Browser, fixed the dragging of Activities that use the same value for the Activity Prefab Template property. (449142)

  • Fixed the issue that regardless of the cursor position, caused Kanzi Studio to insert a macro in the beginning of the Log Text property of a Write Log Action. (450567)

  • Fixed the issue that in a newly created project, the Kanzi Android Framework project could have a wrong reference to the project kzb file. (451511)

  • Fixed the issue that caused Kanzi Studio to swap the names of the Flip Vertical and Flip Horizontal Activity transitions. (454405)

  • Fixed the issue that caused kzb loading to fail when a project uses a custom action that is derived from a class that is derived from the ForwardingAction class. (455848)

Kanzi framework SDK

  • Fixed the issue that prevented the SCons build scripts from working when you use SCons 4.5. (455514)

See also

Kanzi 3.9.7 migration guide

Known issues