Kanzi 3.9.5 release notes

New features

  • Introduced the continueIf binding function that enables you to conditionally stop the execution of a binding. See continueIf.

    ../../_images/continue-if.png
  • Introduced the Outline Effect 2D effect that enables you to apply an outline to the content of a 2D node. See Using the Outline Effect 2D effect.

    ../../_images/outline-effect-2d-large.png

Feature improvements

  • Kanzi Java API improvements:

    • Now supports custom derived ListBoxItemGenerator2D and ListBoxItemGenerator3D classes. Use these derived classes to configure the items in List Box nodes.

    • Added to the KanziObject class the addClassPropertyDefaultValue() function that enables you to set a default value for a property of your class.

      For example, in a class that extends Node override initialize() and call addClassPropertyDefaultValue(VisibleProperty, false).

    • Added to the Node class the functions to attach (addInputManipulator(InputManipulator inputManipulator)) and detach (removeInputManipulator(InputManipulator inputManipulator)) an input manipulator from a node.

  • Activities improvements:

    • Activity Browser now adds Activity Properties to the project namespace.

    • If ActivityElement node does not contain the history for an Activity, the ActivityHistoryManager::hasHistory() function now performs the lookup recursively in parent ActivityElement nodes by the Activity relative path.

  • Introduced to the Input Manipulator the Hit Test Ray Distance message argument that reports the distance along the hit test ray between the camera and the bounding box of the 3D hit test node.

    ../../_images/hit-test-ray-distance.png
  • Introduced the CompositionManager::setReuseParameters() function that enables you to control when the Composition Manager frees up unused temporary composition targets.

  • Kanzi now generates texture coordinates for spheres using spherical mapping, instead of mirroring the UVs over the z axis.

  • Kanzi Studio now supports Debug and Release build types for Java plugins. See Using Kanzi Engine plugins, Extending the functionality of Kanzi Engine with Java, and Tutorial: Data Sources for Android.

  • To optimize OpenGL rendering performance and memory consumption, Kanzi now uses shared geometry for most of the 2D rendering. See Changes to 2D node geometry.

  • Introduced in the Kanzi Studio plugin interface Project.IsSDKProject that enables you to check whether a Kanzi Studio project follows the folder structure of a project that uses application code.

  • You can now set the location of your Android Studio installation using the ANDROID_STUDIO environment variable.

    Kanzi Studio uses this environment variable to open Kanzi applications for Android in Android Studio. For example, when you open Code Behind source from the Activity Browser. See Setting up the Android build environment.

    ../../_images/android-java-home-paths.png
  • When you forward a property value from a message argument with a Set Property Action, you can now select the field of the property value.

    ../../_images/set-property-action-message-argument-field.png
  • In Kanzi Studio the Node Components create menus for the Message Triggers and Message Actions are now organized by message categories.

    ../../_images/add-toggled-on-trigger.png ../../_images/node-components-value-accumulator-start.png
  • When deleting unused items in your Kanzi Studio project, you now have the option to select all or none of the unused items. See Cleaning up your project.

    ../../_images/delete-unreferenced-items-window.png

Changes

  • Kanzi now applies the font hinting set in a font when it lays out text in Text Block and Text Box nodes. See Changes in text layout.

  • Kanzi now uses the Node > Visible property to control whether a light is on. See Changes to Light nodes.

  • When you load a Kanzi application on a target device that does not support half-float mesh vertex attributes, Kanzi no longer automatically converts vertex data from half-float to float. See Changes to mesh vertex data handling.

  • Added to the KanziViewAdapter the handleVisibilityChanged() method that you can use with Kanzi Android framework (droidfw) in a view-less context. Call this method every time the visibilty of a view-less surface changes, such as when another application covers an Android wallpaper that contains Kanzi content.

  • Updated the Android templates, tutorials, and examples to use the Kanzi Gradle plugin version 0.7.1. Change to Kanzi Gradle plugin version.

  • Renamed the Fast performance vertex shaders Kanzi Studio project template to High performance vertex shaders.

  • Renamed the linux_imx8_wayland_aarch64_gcc102 platform package to linux_wayland_aarch64_gcc102.

  • Added the linux_drm_gbm_aarch64_gcc74 platform package.

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

Documentation

Notable fixes

ID

Description

Area

106464

Fixed the issue that caused the Preview to render the prefab template child nodes in a wrong order after you reorder the child nodes of its prefab placeholder.

Kanzi Engine

176477

Fixed the issue that caused the Brush Horizontal Tiling and Brush Vertical Tiling properties to have no effect when you set them in a 2D node.

Kanzi Engine

410944

Fixed the issue that caused the kzb Player to incorrectly display Text Block 2D nodes when you bind the Font Size property to the size of the Screen node.

Kanzi Engine

415452

Fixed the snapping behavior of a non-looping Trajectory List Box 3D node that scrolls along the y axis. When the user scrolls the list beyond the first or last item, the list box now snaps back to that item.

Kanzi Engine

416388

Fixed the issue that caused incorrect focus handling for initially active Activities in a Parallel Activity Host.

Kanzi Engine

418086

Fixed the issue that caused Kanzi to render incorrect texture data when a shader samples outside the active area of a reused render target.

Kanzi Engine

423605

Kanzi now automatically disables a 2D effect that has no visual effect on the rendering result. For example, when you in the Blur Effect 2D effect set the Blur Radius to 0, Kanzi disables the effect.

Kanzi Engine

423718

Fixed the issue that caused the calls to kzLog to crash if a format argument index is out-of-bounds.

Kanzi Engine

424220

Fixed the issue that caused clipping errors when composition mode changes.

Kanzi Engine

424939

Fixed the issue that caused the Preview to terminate when you set the Font Size property to 0 in Text Block and Text Box nodes.

Kanzi Engine

426330

Fixed the issue that caused the Performance HUD to display the Timeline Clock milliseconds incorrectly.

Kanzi Engine

427041

Fixed the issue that caused the Preview to terminate when you try to dispatch the Activate Activity message to the root Activity node.

Kanzi Engine

431751

Fixed the issue that caused text to flicker when the glyph cache is full.

Kanzi Engine

412482

Fixed the issue that prevented the binding parser from detecting invalid characters in property paths.

Kanzi Studio

416672

Fixed the issue that prevented Kanzi Studio from importing resources from the Generic directory when you import or merge a Kanzi Studio project.

Kanzi Studio

423599

When you import a glTF file that uses unsupported extensions, Kanzi Studio now logs a warning that lists those extensions.

Kanzi Studio

427982

Fixed the issue that caused Kanzi Studio to report a warning about FloatValueAccumulator.TargetPropertyField in the KanziStudio.log.

Kanzi Studio

428322

Fixed the issue for projects using the Kanzi Studio project template that generated spurious Code Behind Service warnings in the Kanzi Studio Log window when you rename the project or when you add a referenced project. Also fixed the the issue for projects using the Application template that generated spurious Could not find Template.metadata error in the Kanzi Studio Log window when you use Save Project As... option.

Kanzi Studio

430536

Fixed the issue for projects using the Kanzi Studio project template that generated spurious Code Behind Service warnings in the Kanzi Studio Log window when you add Code Behind to the project.

Kanzi Studio

417701

Kanzi Android framework (droidfw) applications now suspend the main loop when there is no work to be done. Timers, property changes, and tasks added to the TaskDispatcher wake the application out of suspend.

Kanzi Android framework (droidfw)

422703

Fixed the issue where value source BindingBuilder.createOneWay(Object value) of string type lost the value and returned the boolean value true.

Kanzi Java API

426863

Kanzi Android framework (droidfw) applications that contain a KanziTextureView now suspend when the activity is no longer visible to the user. For example, when a different activity covers the entire screen.

Kanzi Android framework (droidfw)

429059

Fixed the issue that caused Kanzi Gradle plugin to always add the Kanzi Engine dependency to Android library projects.

Android

429117

Fixed the issue that caused Kanzi Gradle plugin to throw an exception when you add a custom build type to an Android application project.

Android

422349

Fixed the issue that caused a Kanzi Engine application created with a Kanzi Studio project template to always register plugin components statically. See Changes to Kanzi Engine plugin static registration code.

Kanzi framework SDK