Kanzi 3.9.3 release notes¶
New features¶
Custom Kanzi Studio property editors. Introduced Kanzi Studio API that enables you to define your own property editor for custom Kanzi Studio and Kanzi Engine property types. See Defining a property editor.
New functionality for binding expressions. You can now use binding expressions to:
Perform bitwise operations. See Bitwise operators.
Convert between the sRGB and HSL color spaces. See srgbToHsl and hslToSrgb.
Access the properties of texture resources. See Texture functions.
You can now write Code Behind for Activities in Java. See Programming Activities with Java Code Behind.
Added support for the QNX system logger (slogger2). To build a Kanzi application for QNX, you now need the slog2 library from the QNX software development platform. See QNX system logger (slogger2).
Feature improvements¶
Kanzi Studio improvements related to the Activity system:
You can now use Activity prefabs from referenced Kanzi Studio projects.
Improved the Create Activity dialog:
You can now refer to an Activity prefab by its name or kzb URL.
Improved the filtering of the existing Activity prefabs in the Prefab Template dropdown menu.
Improved the validation logic. For example, you can no longer select an Activity prefab that is already in use by an ancestor Activity.
In the Activity Browser side panel the Activity Prefab Template dropdown menu now shows the name of the selected Activity prefab instead of the kzb URL, which you can see in the tooltip.
You can now use prefab placeholders as the root Activity Host node in the Activity Browser.
Improvements to application configuration:
You can now improve the security of your Kanzi application by controlling memory consumption in the third-party libraries that Kanzi uses to load images. See Image loading.
You can now choose which strategy Kanzi uses to memory map files on QNX. See MmapMode.
You can now set the QNX Screen pipeline ID for your Kanzi application window. See QnxPipelineID.
Kanzi Android framework (droidfw) improvements:
You can now load kzb files from a custom location. See Loading kzb files from a custom location.
Kanzi Java API improvements:
Added to the
Node
class a set of functions to access node change flags. For example,Node.setChangeFlag(PropertyTypeChangeFlag)
,Node.isChangeFlagSet(PropertyTypeChangeFlag)
, and flag-specific methods, such asNode.invalidateMeasure()
andNode.isInvalidMeasure()
.All built-in message types are now associated with their message argument class.
All built-in message argument classes now have getters and setters for all their properties.
Added support for bindings. Now you can:
Create one-way, two-way, to source, value source, and resource source bindings.
Use callback binding processors.
Set and remove bindings using the
Node.setBinding()
,Node.setBindingWithOwner()
,Node.setModifierBinding()
,Node.setModifierBindingWithOwner()
,Node.removeBinding()
, andNode.removeBindingsWithOwner()
methods.
See Using bindings.
Added access to C++ counterparts in relevant classes to ease integration with custom JNI code. See Using custom JNI extensions.
Kanzi Studio project templates for Android now support stripping debug symbols from native libraries by specifying the
stripNativeLibs
property. See Stripping debug symbols.Improvements to render passes:
You can now set in any render pass the Camera node that the render pass and its descendants use to render content. See Setting the camera for render passes.
Introduced in the Composition Target Render Pass the Input Viewport Area property that reports the viewport area of the composition target relative to the composition space of the parent render pass. See Rendering content to composition targets.
Kanzi Engine Introduced a
FocusManager::trySetFocus()
overload that enables you to set fallback behavior when setting focus to the node fails.On QNX you can now list information about the displays available to your Kanzi application. See Printing Screen display information.
Introduced support for 32-bit indices in meshes.
Kanzi now generates mipmaps for a render target texture automatically when the mipmap mode requires them.
Changes¶
The Android application and Android application with Java plugin new project templates now align with Android Studio defaults.
Kanzi Java API changes. When you define a message type, you must now specify an associated message argument class. Accordingly, when you dispatch or handle a message, you must use the message argument class associated with the message type. Kanzi Studio uses this association to give you a list of properties that you can set to or get from the arguments of a message. See Changes in Java API.
Kanzi now by default uses the default strategy of the target system to memory map files. For example, QNX by default uses eager mapping. Previous versions of Kanzi instructed the system to use lazy mapping. See MmapMode.
The morph shader now calculates the weight for the base morph. If you want to apply this change to a project that uses the old morph shader, see Changes to the morph shader.
Kanzi Studio now uses .NET Framework 4.8. See Kanzi Studio plugins.
Removed the drawBuffers() functions from the Renderer3D. The data-driven render path from the RenderEntry3D class supersedes these functions.
You can achieve the same functionality using these functions:
applyMaterialStrict(node, material)
mesh->applySkeleton(coreRenderer, node, shader)
mesh->bind(coreRenderer, node, cluster, shader) (or morph->bind())
coreRenderer.applyTransformation(shader)
coreRenderer.drawBuffers()
Documentation¶
Added a tutorial that helps you learn how to start developing Kanzi applications for Android. See Tutorial: Getting started with Kanzi Android framework (droidfw).
Added a tutorial that helps you learn how to use a Kanzi data source written in Java to access Android APIs. Tutorial: Data Sources for Android.
Notable fixes¶
ID |
Description |
Area |
---|---|---|
383468 |
Kanzi Studio Preview no longer terminates when you in a Trigger Condition compare a resource to a Fixed Value by resource ID. |
Kanzi Engine |
401937 |
Fixed an issue with applying the Font Hinting Preference when using the iType Font Engine. |
Kanzi Engine |
401232 |
Kanzi no longer lets the application user select an item in a disabled List Box node. |
Kanzi Engine |
402604 |
Fixed focus system message dispatching and the order in which Kanzi dispatches the focus messages. |
Kanzi Engine |
405914 |
Calling |
Kanzi Engine |
395613 |
Fixed the issue that prevented the Apply Activation Action from activating an Activity in a Parallel Activity Host that is in the Deactivating state. |
Kanzi Engine |
402601 |
Parallel Activity Host now deactivates an auto-closing overlay Activity when keyboard focus moves to an overlay behind that Activity. |
Kanzi Engine |
404262 |
Fixed the issue that caused Kanzi to needlessly detach and reattach an Activity in a Parallel Activity Host when you activated the Activity or changed its priority level. |
Kanzi Engine |
413250 |
Fixed the issue that when only some of the 3D rotation channels were animated, Kanzi was ignoring the transformation property value of the other rotation channels. |
Kanzi Engine |
400351 |
When parsing an application configuration file fails, Kanzi now logs a verbose error message that includes the file name. |
Kanzi Engine |
409473 |
Fixed the issue that prevented creating multiple instances of a skinned mesh. See Changes for skinned meshes. |
Kanzi Engine |
131174 |
Fixed the issue that caused a discrepancy in font metrics calculations between iType and FreeType font engines in Kanzi. |
Kanzi Engine |
379057 |
Fixed the issue that made the Activity Browser show deleted Activity properties. |
Kanzi Engine |
406088 |
Fixed the issue that caused slowness when attaching non-focusable nodes. |
Kanzi Engine |
412903 |
Fixed the issue that prevented Kanzi from updating the render target texture of a 2D node. |
Kanzi Engine |
416090 |
Fixed the issue that caused the |
Kanzi Engine |
410928 |
Fixed the issue that caused a Java plugin defined NodeComponents in Kanzi Studio to terminate the Preview. |
Kanzi Java API |
411080 |
Fixed the issue that caused input handling to break when Kanzi Studio project |
Kanzi Android framework (droidfw) |
410949 |
Fixed the issue where |
Kanzi Android framework (droidfw) |
374084 |
Fixed the issue where typing certain characters in the Create Activity dialog caused a Null Reference exception. |
Kanzi Studio |
398445 |
The Create Activity dialog now lets you name an Activity the same as an existing Activity prefab. |
Kanzi Studio |
401362 |
Fixed the issue that prevented the Preview Node tool from selecting an Empty Node 2D node that has a Foreground Brush but no Background Brush. |
Kanzi Studio |
404166 |
Kanzi now preserves the keyboard and logical focus nodes when the Focus Order property of a node in a focus scope changes. |
Kanzi Studio |
410397 |
The Phong shaders that come with Kanzi now support using both skinning and morphing at the same time. |
Kanzi Studio |
412874 |
The Phong shaders that come with Kanzi now support configuring the number of morph targets with the |
Kanzi Studio |
410615 |
The fbx importer in Kanzi Studio now supports loading meshes that are using both skinning and morphing at the same time. |
Kanzi Studio |
409499 |
Fixed the issue that caused the fbx importer to load some transformations incorrectly. |
Kanzi Studio |
410612 |
Kanzi can now import mesh morph weight animations from fbx files. |
Kanzi Studio |
274524 |
Fixed the Preview debug visualization of skinned meshes. |
Kanzi Studio |
399181, 395617, 362488 |
Kanzi Studio project renaming now works with Kanzi Activities. |
Kanzi Studio |
131174 |
Fixed the issue that prevented the Activity Browser from deleting invalid Activities. |
Kanzi Studio |
345314 |
Fixed the issue that prevented Kanzi Studio Preview from rendering lights in a Scene prefab that you opened as a composition. |
Kanzi Studio |
401927 |
Fixed the issue where Kanzi Studio failed to import some 3D models that contain meshes with more than 64k vertices. |
Kanzi Studio |
411007 |
Fixed the issue that prevented adding Code Behind in the Activity Browser after you rename a Kanzi Studio project. |
Kanzi Studio |
412556 |
Fixed the issue that prevented adding Code Behind to a Data-Driven Exclusive Activity Host in the Activity Browser. |
Kanzi Studio |
381124 |
Fixed the issue that prevented including generic methods in the Kanzi Java API reference. |
Documentation |
407827 |
Fixed the Tutorial: Drag and drop and Tutorial: Get application data from a data source instructions to use a static |
Documentation |
409433 |
Kanzi tutorials and examples now come with the |
Kanzi framework SDK |