Kanzi 3.6.4 release notes

New features

  • Kanzi Studio solution

    Renewed the functionality and workflow for Kanzi Studio solutions: projects that include other projects. Kanzi Studio now loads projects from a Kanzi Studio solution in separate project tabs in a single Kanzi Studio window. You can configure how you want to access prefabs and resources from these projects. See Tutorial: Combine Kanzi Studio projects into a single Kanzi application and Combining Kanzi Studio projects into a Kanzi application.

    ../../_images/resources-make-public.png
  • ASTC

    You can now decrease the size of your kzb files and improve the startup time of your Kanzi application by compressing the textures using the ASTC algorithm. The ASTC offers more control and better compression than the other compression formats available in Kanzi. See Compressing textures.

    ../../_images/astc-compression-speed1.png

Feature improvements

  • You can now measure the loading and deployment time of resources in your Kanzi application. See Measuring the loading and deployment time of resources.

  • Improvements to rendering:

    • Composition Target Render Pass now has the Filter Mode property, which you can use to set the filtering mode of automatically generated composition targets. By default Composition Target Render Pass uses linear filtering, but you can use this property to set the nearest filtering. See Rendering content to composition targets.

      ../../_images/filter-mode.png
    • You can now set a Composition Target Render Pass to automatically resolve multisampling and mipmaps after rendering. Normally Kanzi resolves them when another render pass references the result composition target, but if you manually assign the composition target, use the Resolve Immediately property to avoid adding a render pass just to refer to the composition target render pass and perform the resolve. See Creating mipmaps for a Render Target Texture.

      ../../_images/resolve-immediately-enabled.png
    • Kanzi now automatically creates stencil buffers for 2D and 3D composition targets. 2D composition no longer automatically clears the depth or stencil buffers, so render passes within scenes automatically composited by the Node2D must clear those buffers. By default the render passes always clear depth. This enables a Composition Target Render Pass to automatically create stencil buffers when the render pass uses them.

    • Cubemaps now have seamless filtering enabled. This means that texels at the seams of cubemaps blend when you use linear filtering. To use this functionality, your target hardware must support this functionality.

  • Added the Move Focus and Set Focus actions, which enable you to control focus in your Kanzi application without using JavaScript scripts. See Using focus.

    ../../_images/add-set-focus-action.png
  • Added to the Text Block nodes the Remove Side Bearings property. Use the Remove Side Bearings property to position the leftmost characters of left-aligned text and rightmost characters of right-aligned text exactly within the boundary of the text block.

    ../../_images/remove-side-bearings.gif
  • Custom Resource Manager protocol can now return null resources. For example, this enables you to display existing placeholder images until the new resource loads and then replace the placeholder image with a resource URI when the resource successfully loads.

  • You can now nest Grid List Box, Trajectory List Box 3D, and Scroll View nodes, each of which you can set to scroll on a different axis. See Nesting Grid List Box nodes and Nesting Trajectory List Box 3D nodes.

  • Removed the dllimports from the Kanzi template classes, which means that you can now use the ListBoxConceptImpl in you Kanzi Engine plugins.

  • Kanzi Engine DLL files now include PDB files to help you debug your Kanzi application.

  • Kanzi Engine now throws an exception if it does not find a property type that you refer to in a kzb file.

  • Several Kanzi Studio usability improvements that help you get things done in less time:

    • You can now update with a single command all data sources in a project or entire Kanzi Studio solution. See Updating data sources.

      ../../_images/update-data-sources-in-project.png
    • You can now update with a single command all Kanzi Engine plugins in a project or entire Kanzi Studio solution. See Updating a Kanzi Engine plugin in a project.

      ../../_images/update-kanzi-engine-plugins-in-project.png
    • Improved the Kanzi Studio command line commands so that you can automate and streamline your workflow in Kanzi Studio projects. For example, you can now create and update data sources and Kanzi Engine plugins using a script. See Automating Kanzi Studio tasks.

    • You can now instantiate a Scene prefab in a Viewport 2D node using a Prefab Placeholder node, including from a referenced project using a resource ID.

    • In the Library when you run the Show Details command on a resource that is stored in a file, you can now see the path to the resource file.

      ../../_images/show-details.png ../../_images/item-details.png
    • In Edit > User Preferences > Advanced you can now set the number of images you want Kanzi Studio to compress in parallel. See Compressing textures.

      ../../_images/images-to-compress-in-parallel1.png
    • In Edit > User Preferences you can now set Kanzi Studio to ask if you want to load referenced projects when you open a Kanzi solution project.

      ../../_images/ask-before-loading-referenced-projects.png
    • When you create a Render Target created from a Viewport node, Kanzi no longer draws the debug objects to the Render Target in the Preview.

    • You can now remove all resources in the Library which are not in use by selecting Project > Delete Unreferenced Items. See Deleting resources and prefabs that your project is not using.

      ../../_images/delete-unreferenced-items-from-project.png
    • When you import an image with a name that already exists, Kanzi Studio now provides more options so that you can select whether you want to overwrite that single image, all images with the same name, add all images with the same name as new images, or cancel the importing.

    • Separated the Preview and thumbnail rendering processes. This way when the thumbnail rendering terminates, the Preview continues working without interruption.

    • You can now use the State Manager to change tags for a node.

    • You can now restart the Preview using the Restart button in the Preview.

      ../../_images/preview-restart-button-gray1.png
    • In the navigation actions for the Page and Page Host nodes you can now use the Immediate property to make an instant navigation transition without an animation.

      ../../_images/immediate-page-navigation.png
    • Removed the functionality of the clearFocus() scripting function. A valid application must have a node with focus.

    • You can now set focus to a node when that node is being attached. In the onAttached() override of a node, you can call the trySetActiveFocus() function to set focus to that node.

    • Kanzi Studio now marks in the Library with red type those material types that have varying variables with different precisions in the vertex and fragment shaders.

      ../../_images/shader-precision-mismatch.png

Changes

  • Now when you use the file:// protocol to load textures, to improve the visual quality, Kanzi sets the texture to use the Linear, instead of Nearest filtering.

  • Added the Linux CPP11 configuration.

  • Updated the LibPNG library used by Kanzi Engine to version 1.6.35.

Documentation

Fixes

ID

Description

Area

8833

When you render a Composition Target Render Pass to a Render Target Texture, setting the Width and Height of the Render Target Texture to Automatic now works.

Kanzi Engine

8781

Fixed kzcScreenCaptureToImage to always capture the whole screen.

Kanzi Engine

8615

Fixed the ScrollViewConceptImpl::setScrollBoundsY and ScrollViewConceptImpl::setScrollBoundsX functions which set the vertical and horizontal scroll bounds in a Scroll View.

Kanzi Engine

8559

Fixed the issue which prevented the ProfilerRegistry<AbstractProfiler> to work with DLL configuration.

Kanzi Engine

8529

Fixed the issue which on devices using Vivante framebuffer sometimes caused multiple pointers to stay pressed on the touch screen after releasing the fingers from the touch screen.

Kanzi Engine

8466

Fixed the issue which caused the Pipeline State Render Pass to create wrong result when you set the Color Write Mode property to Alpha.

Kanzi Engine

8456

The NavigationParent message now works with Page Host nodes.

Kanzi Engine

8444

Fixed the issue which prevented the change of the value of the Material property in some cases.

Kanzi Engine

7898

The kanzi/core.ui/graphics3d/mesh_create_info.hpp header is now included in kanzi.hpp.

Kanzi Engine

Several fixes made based on static code analysis, including Visual Studio 2017, Clang, and Coverity.

Kanzi Engine

8900

Having the application.cfg file in the Application/bin directory no longer prevents you from updating data sources.

Kanzi Studio

8870, 8055

You can now drag multiple items from the Assets window.

Kanzi Studio

8840

Fixed the auto-recording of changes in the State Tools.

Kanzi Studio

8813

Setting Blend Mode to Alpha: Automatic now resolves to Alpha: Mixed instead of Alpha: Non-premultiplied.

Kanzi Studio

8752, 8547, 8541, 8449

Improved performance and stability of Kanzi Studio and the Preview.

Kanzi Studio

8687, 8481

You can now create a Prefab View 3D node in a Viewport 2D node.

Kanzi Studio

8649

In the Find Project Item dialog when you select multiple found items, Kanzi Studio now correctly selects these items in the Node Tree and Library.

Kanzi Studio

8648

In the Dictionaries window the search now returns also those resources that you just added to a resource dictionary.

Kanzi Studio

8610

When you run the Delete Unreferenced Items command on binary shader, Kanzi Studio no longer deletes binary shaders.

Kanzi Studio

8573

You can now use the Kanzi Studio property editors GenericResourceFileSelector and DefaultProjectObjectSelector for property types declared in a Kanzi Engine plugin.

Kanzi Studio

8548

Fixed the issue which prevented Kanzi Studio to compress some images using the ETC2 algorithm.

Kanzi Studio

8498

Prepare Project for Release command now plays nicely with the composition tabs.

Kanzi Studio

8480

Fixed the issue which prevented you to instantiate a Scene node prefab using a kzb URL.

Kanzi Studio

8471

Fixed the default keyboard shortcut for closing composition tabs.

Kanzi Studio

8017

When you open a prefab in a composition tab, the Node Tree window now by default shows only the nodes in that prefab.

Kanzi Studio