=============================================== Kanzi 3.6.x cumulative release notes =============================================== ----------------------------------------------- Kanzi 3.6.14 release notes - March 26, 2021 ----------------------------------------------- Changes ------- * Updated the FreeType library to version 2.10.4, which, among other changes, includes fixes to vulnerabilities. For the details about changes to the FreeType library, see the release notes provided with the FreeType library. Fixes ----- * Fixed the issue that prevented the initial binding update from connecting to a source property value that is set by a State Manager. * When Kanzi patches the root node of an item template prefab, it now makes sure not to remove the Data Context property from the root node of the created list box item that is set by the data source list item generator. * After the PropertyFieldTargetInterpolationTimelinePlayback reaches the target value, Kanzi no longer keeps updating the value of that property. * acquireResourcesAsync no longer throws an exception when the ResourceManager file protocol cannot open a file. * Kanzi now handles SYN_DROPPED event according to the evdev specification. * Kanzi State Manager no longer terminates when applying a State Object causes a recursive state change that switches to an empty State. * In a Text Block node when you set character offset with the Character Spacing property, Kanzi no longer applies the offset to the first character of every new line. * Fixed the issue that caused the variation selector glyph in iType text shaper (WorldType) to terminate a Kanzi application. ----------------------------------------------- Kanzi 3.6.13 release notes - December 11, 2020 ----------------------------------------------- Feature improvements -------------------- * You can now use the Kanzi Studio plugin API to set the Start Time for state transitions. * When you use a custom property type with the same name in more than one kzb file, Kanzi now checks that the definitions of these property types are consistent. * Kanzi now supports the frame done callback on Wayland. Changes ------- * On QNX screen usage is now set based on the GLES API version from renderable type bits of the EGL configuration, instead of being hardcoded to SCREEN_USAGE_OPENGL_ES2. * Added the linux_imx8_wayland_aarch64_gcc92 scons configuration. * Updated the Android platform package to use Android Studio 4.1.0 and Gradle 6.5. Documentation ------------- * Added instructions on how to handle name change for a property type or message in your Kanzi Engine plugin. * Added the Japanese translation for these parts of Kanzi documentation: - Tutorials: - Getting started with Kanzi Studio - Creating cluster indicators - Load and deploy resources asynchronously - Get application data from a data source - Feature documentation: - Developing Kanzi applications for Android - Configuring your application - Using bindings To select the language, in the topic header click the globe and select the language. To select the default documentation language, in Kanzi Studio in the Edit > User Preferences set the Language property to the language that you want to use. Fixes ----- * Fixed the issue that caused overriding of android.defaultConfig.ndk.abiFilters in build.gradle and the addition of native Kanzi libraries for unrelated architectures to APK. As a result the APKs are now smaller. * Kanzi now takes into account text direction when placing the overflow characters. * Fixed the issue where expired one-shot timers (KZU_TIMER_MESSAGE_MODE_ONCE) prevented an application from entering the idle state, until you explicitly removed them. * Fixed the issue that caused a Trajectory List Box 3D to scroll when you add or remove an item. * Fixed the issue that caused a Slider 3D node to lose track of ongoing pan when the pointer moved outside of the node area. * Fixed the issue that caused a resource leak warning from a Kanzi application in Android with StrictMode enabled. * Fixed the issues that caused an Animation Player to terminate an application. * Fixed the issue that in some cases caused Kanzi to terminate if an application used a Viewport 2D node in a Grid List Box 2D node. * Fixed the issue that caused the "EGLNativeWindowType 0xea63f008 disconnect failed" error when a Kanzi application on Android quits. * The Node tool in Kanzi Studio Preview now correctly snaps nodes in Grid Layout nodes. * Fixed the issue that caused Kanzi Studio to issue a warning when you set in a Scene node the Blend Mode property to Alpha: Premultiplied. * Kanzi Studio Preview now remembers the zoom level after the Preview restart. * Fixed the issue in Kanzi Studio that prevented Kanzi Engine plugins from extending metaclasses. * Fixed the issue that prevented the Preview from starting after you rename a Kanzi Engine plugin dll that is in use in that Kanzi Studio project. * Fixed the issue that prevented the Navigate to Next and Navigate to Previous actions from storing the value for the Define Target with Property option. ----------------------------------------------- Kanzi 3.6.12 release notes - September 28, 2020 ----------------------------------------------- Feature improvements -------------------- * Improved the readability of EGL error messages that Kanzi Engine logs. Now the error messages include a text version of the EGL error code, such as, EGL_BAD_ALLOC. * 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. * Improved the OpenGL ES 3 graphics context creation. The context for ES 3 now uses the EGL_CONTEXT_MINOR_VERSION attribute. * Improved the EGL graphics context uninitialization. Kanzi now releases all thread resources immediately after destroying the context. * Brought back the Overdraw visualization. Overdraw visualization indicates areas where Kanzi renders multiple times to the same pixel. Lighter green color indicates higher amount of overdraw. * Introduced the Compose and Blit Pass render pass template. Use this template to blit a Composition Target Render Pass using a specific material. * The Kanzi material types FragmentPhongSkinned, FragmentPhongTexturedSkinned, VertexPhongSkinned, and VertexPhongTexturedSkinned now by default support skinning of meshes with up to 100 bones. * In Kanzi Studio you can now open a project in Windows Explorer from the context menu of a project tab. Changes ------- * On Android aarch64, x86, and x86_64 now require NDK version 21.3.6528147. * Rebuilt the ICU 62.1 library for linux-x86_64 to include the word-break functionality. Documentation ------------- * Added a procedure that shows how to use a tile atlas. By using a tile atlas you can improve the performance of your application. * Introduced the glossary, Kanzi Studio UI labels, and parts of Kanzi fundamentals in Japanese language. In Kanzi Studio you can select the default language in the Edit > User Preferences > Advanced tab with the Language property or in the documentation select the language in the header. * Updated the Chinese language documentation. Fixes ----- * Fixed the issue for Kanzi applications running on Android where Kanzi added two sleep events and log entries at haltApplication during pause and shutdown sequence. * Fixed the issue that caused the generateMipmaps() to fail at restoring the root framebuffer after completing the mipmap generation. * Fixed the memory allocations in core/platform/file that were not checked. * Fixed the issue that when you set slider as the editor for a property type in a Kanzi Studio plugin, showed wrong editor in Kanzi Studio. ----------------------------------------------- Kanzi 3.6.11 release notes - July 31, 2020 ----------------------------------------------- Documentation ------------- * Added a section that describes the different options for wrapping and truncating text in Text Block nodes. Fixes ----- * Fixed the issue that caused compilation errors when building a Kanzi Engine plugin for linux_x11_glx_cpp98. Kanzi Engine * Fixed the issue that prevented Kanzi applications on Android from starting. Kanzi Engine * Fixed the issue that caused a Kanzi application on Android to terminate when KanziView received touch event after being destroyed. Kanzi Engine * Fixed the handling of the sleep event in the first frame of the main loop. Kanzi Engine * Fixed the issue that prevented showing some source messages and texture types in Node Components. Kanzi Studio * Fixed the issue that caused Kanzi Studio to terminate in some cases when you save user preferences. Kanzi Studio ----------------------------------------------- Kanzi 3.6.10 release notes - June 15, 2020 ----------------------------------------------- Feature improvements -------------------- * In a Composition Target Render Pass: - Added these graphics formats that you can set in the Pixel Format property: - R8_SNORM - R8G8_SNORM - R8G8B8_SNORM - R8G8B8A8_SNORM - R16_SNORM - R16_UNORM - R16B16_SNORM - R16B16_UNORM - R16B16G16_SNORM - R16B16G16_UNORM - R16B16G16A16_SNORM - R16B16G16A16_UNORM - R32_SINT - R32_UINT - R32_SFLOAT - R32G32_SINT - R32G32_UINT - R32G32_SFLOAT - R32G32B32_SINT - R32G32B32_UINT - R32G32B32_SFLOAT - R32G32B32A32_SINT - R32G32B32A32_SFLOAT - R32G32B32A32_UINT - Added to Kanzi Studio the Depth Compare Function to enable you to set the comparison function that you want to use with comparison samples. * Improved application start-up times by removing redundant updates in the Path property of instantiated start up prefabs. * Improved the layout performance of Text Block nodes by removing redundant layout recalculations. * Added to the TaskDispatcher the ability to check application state. See TaskDispatcherBase::isQuitting and TaskDispatcherBase::setQuitting. This allows you to quit recurring tasks when the application is quitting. * Added a name argument to the messages sent by the animation player node components (AnimationPlayer and PropertyTargetInterpolator). This allows you to identify which animation player sent a message. * Kanzi now clears the TaskDispatcher queue before GL deinit. This means that you do not need to check for GL validity before you run a GL-dependent operation inside a task. * Updated integrity_rcar_fb_api: - Build configuration now uses the latest toolchain and rebuilt Kanzi Engine third-party libraries with the updated toolchain. - Now uses the integrity-arm-x2365 Boost library instead of integrity-arm-comp2013. - Removed the BOOST_ERROR_CODE_HEADER_ONLY configuration. * To improve efficiency, the change in values of these Brush properties no longer triggers the Node2D::arrange and Node2D::measure: - Brush Modulate Color property (Brush.ModulateColor) - Brush Horizontal Tiling property (Brush.HorizontalTiling) - Brush Vertical Tiling property (Brush.VerticalTiling) - In a Color Brush the Brush Color property (ColorBrush.Color) - In a Texture Brush the Brush Texture property (TextureBrush.RenderTexture) * Added KANZI_API macros to functions in KzcDynamicArray and KzcHashMap. * In the Preview improved the image quality when viewing the content at lower magnification values. Changes ------- * Changed the version of the kzb file format from 3.2 to 3.3. * Updated the libjpeg library to version 9d. Documentation ------------- * Added to the Working with ... section a topic dedicated to developing Kanzi applications for Android. * Added an example that shows how you can create a custom logger. Fixes ----- * Fixed the issue related to checks for non-printing characters in text shaping libraries to improve the size of the Kanzi runtime library. * Fixed the issue that caused some applications to terminate on integrity_rcar_fb_api during OpenGL initialization. * When a Model3D mesh changes, you no longer have to call Node::invalidateDraw to update that mesh. * Fixed the issue that caused slowness when adding and removing nodes. * Fixed the issue that caused incorrect rendering when a Text Block 2D node is partially transparent and has a child node. * Instead of building all, kzb_player now builds only the architectures that you pass on the CLI. * Fixed the issue that caused Kanzi to set on initialization the error material to every mesh, even if the materials set to meshes are working correctly. * Fixed the issue that caused a crash when an application repeatedly reloaded and rendered a prefab with a mesh. * Fixed the kzcMatrix4x4Determinant function to use the correct matrix indices. * Fixed the issue that caused a crash when creating a timeline playback in the context of an already existing timeline playback. * Fixed the issue that caused an exception when overriding a class that is based on the NodeComponent class, such as TimerTrigger. * When the value of the Grid List Box node Cell Width property changes, Kanzi now runs the Node2D::measure to recalculate the layout. * Fixed a clang static analysis warning in kzs_string. * When you merge a project, Kanzi Studio now takes the changes related to shader code directly from the merged items. * Fixed the issue that caused Kanzi Studio to incorrectly export in a State Manager the value for the Blend Mode property when set to Alpha: Automatic. * Fixed the issue that caused Kanzi Studio to skin the neutral pose mesh into a posed armature when importing a skinned and bone animated mesh. * Fixed the issue that prevented Kanzi Studio from setting images for a cubemap texture when you merged a cubemap texture. * Fixed the issue that caused the Preview to reset the Node tool transformation to Layout Transformation. * Fixed the issue that prevented the correct undoing of moving a guide in the Preview. * Improved stability of Kanzi Studio. ----------------------------------------------- Kanzi 3.6.9 release notes - February 14, 2020 ----------------------------------------------- Features -------- * On Linux GBM DRM windowing system you can now create a 32-bit surface with alpha (GBM_FORMAT_ARGB8888) and 24-bit color depth with 8-bit padding without alpha (GBM_FORMAT_XRGB8888). Changes ------- * Updated the FreeType library to version 2.10.1, which, among other changes, includes fixes to vulnerabilities. For the details about changes to the FreeType library, see the release notes provided with the FreeType library. * Updated the libpng library to version 1.6.37, which includes fixes to vulnerabilities. Documentation ------------- * Added instructions on how to make your own node components. Fixes ----- * Fixed the procedure for working with Level of Detail nodes. * Added to the licenses of third-party libraries used in Kanzi Engine the license for the Fira Sans font that is included with the Kanzi Engine. * Fixed the issue that caused MessageArguments instances with static lifetimes to cause a memory leak. * Fixed KZ_FALLTHROUGH for GCC cpp98 build. * When you use iType font engine, Kanzi now delegates kerning to the WTShaper. WTShaper reads the kerning data from the GPOS table of a font and, for fonts that do not define kerning in a GPOS table, uses kern table as a fallback. * Fixed the handling of corrupted or incomplete UTF-8 string input. * Fixed the issue that caused the Preview to incorrectly show that the State Tools are in the Edit mode. * Improved handling of corrupted PNG and JPEG images. Now Kanzi throws an exception when it tries to load a corrupt PNG or JPEG image. * Fixed the issue that prevented Kanzi applications created with the Application template from building for Android with Gradle. * Fixed the issue that caused Kanzi to not render some characters when using FreeType font engine. * Fixed the issue which caused the loading of a State Manager with custom transition animations or with some triggers and actions to assert if resource loader threads are active. ----------------------------------------------- Kanzi 3.6.8 release notes - December 12, 2019 ----------------------------------------------- Feature improvements -------------------- * Improvements to resource loading: - There are now LoadAndFinish and FinishOnly load tasks. FinishOnly load tasks skip loader threads and Kanzi queues them directly to the main thread FinishingQueue. - A load task can now trigger background loading of dependencies. This improves the use of the loader threads, improves the loading time, and makes the background loading smoother. - Added these resource types to use load tasks and load task dependencies: * Brush * Material * Mesh * Render Pass * State Manager * Improved collection of prefab dependencies. For the State Managers and resource IDs that are used in a prefab, Prefab View asynchronous prefab changes can now load resource dependencies in the background. * Improved path property updating, which can make attaching some nodes with bindings faster. * Improvements to the Performance HUD: - You can now configure the position of the Performance HUD. - In the Performance HUD you can now see the number of timer subscriptions, recurring tasks, and animations. * Improved the way resource dictionaries are stored in kzb files. This enables faster loading times of kzb files that have large, unused resource dictionaries, such as localization tables. * Introduced speed optimization for setProperty, addPropertyModifier, removePropertyModifier, copyLocalValue. Changes ------- * Updated the ICU library: - For QNX 6.5 and 6.6 to version 58.2 - For QNX 7 to version 62.1 - For android-aarch64 and android-x86_64 to version 62.1 * Updated PVRTexTool to the version 4.20.0. * With Kanzi 3.6.8 the V8 JavaScript engine is available only on Windows and legacy Android platform that relies on Ant and Scons. * The versions of kzb file format now include the major and minor revision. In Kanzi 3.6.8 the version of kzb file format changed from 3 to 3.1. ----------------------------------------------- Kanzi 3.6.7 release notes - September 20, 2019 ----------------------------------------------- Feature improvements -------------------- * You can now use Android Studio and the Gradle build system to build and deploy Kanzi applications with the Android platform package. * Improved the performance profiling system: - Added several profiling categories. - Added ApplicationProperties::mainLoopProfilingSampleBufferCount. You can use it to set the number of data samples in main loop profilers. - Added resource profiling context attribute ResourceProfilingContext::Duration. You can use it to measure the time it takes to load and deploy a resource, including the resources that the resource depends on. - Added callbacks for each profiler. Kanzi calls these callbacks when the addition of a profiling sample results in a full buffer. * Added to the ResourceManager functions that enable you to retrieve handles of loader threads, so that application code can adjust its settings. Resource manager creates all its loader threads during application startup and does not add or delete loader threads during the rest of application runtime, except during shutdown. * Added ResourceManager::getAllLoadedResources. You can use it to list all resources in a Kanzi application. * Added kanzi::beginPropertyTypes and kanzi::endPropertyTypes. You can use them to list all properties that are registered in a Kanzi application. * You can now configure anti-aliasing for the Kanzi Studio Preview. * Added the Hover property (Node::HoverProperty). Kanzi updates the Hover property for hit testable nodes and their parent nodes to indicate whether a node is the foremost node under the pointer. * Added to Kanzi Studio the state manager triggers Transition Started and Transition Finished, which enable you to react when a state transition starts and ends. * Improved GraphicsFormat: - Added several formats. - Added these graphics format helper functions: - kanzi::findGraphicsFormatByName - kanzi::getBitCount - kanzi::getBitsPerBlock - kanzi::getChannelCount - kanzi::hasAliasedChannel - kanzi::isValid Changes ------- * Added support for Android x86_64. * Updated FBX SDK to version 2019.2. * Updated the Monotype iType library to version 5.3.3 and WorldType Shaper to version 4.3.0. ----------------------------------------------- Kanzi 3.6.6 release notes - June 7, 2019 ----------------------------------------------- Feature improvements -------------------- * Added virtual function onLoaded(), which you can use for data source specific post loading initializations. Kanzi automatically calls this function after both kzb and legacy kzb format function LoadFromKZB(). * Added an application configuration that enables you to control the graphics initialization on the integrity_rcar_rwm_aarch64 platform. Changes ------- * Modified all QNX7 SCons build configurations to include the QNX_CONFIGURATION_EXCLUSIVE environment variable. This environment variable is required by the latest QNX7 toolchain update. * Updated the Kanzi license terms. See KANZI SOFTWARE LICENSE TERMS. ----------------------------------------------- Kanzi 3.6.5 release notes - March 29, 2019 ----------------------------------------------- Feature improvements -------------------- * You can now replace the Kanzi shaders with the binary shaders that your target device uses to reduce the startup time of your Kanzi application. * You can now set the ResourceManager maxPendingResources parameter also during application runtime. * You can now set the number of native window buffers that your Kanzi application window uses. * When you import FBX files Kanzi Studio now by default consolidates meshes by merging the duplicate vertices. You can change this setting in Edit > User Preferences > Advanced. * Added support for multisampling in the Progressive Rendering Viewport 2D node. * You can now see in the Kanzi Studio Preview the content of the kzb file of a project reference that is already loaded in another instance of Kanzi Studio. You can find the complete list of changes in Kanzi 3.6.5 in Kanzi documentation > Release notes and migration guides. Changes ------- * Updated the LibJPEG library used by Kanzi Engine to version 9c. ----------------------------------------------- Kanzi 3.6.4 release notes - December 4, 2018 ----------------------------------------------- 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. * 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. Feature improvements -------------------- * You can now measure the loading and deployment time of resources in your Kanzi application. * 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. - 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. - 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. * 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. * 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. * 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. - You can now update with a single command all Kanzi Engine plugins in a project or entire Kanzi Studio solution. - 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. - 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. - In Edit > User Preferences > Advanced you can now set the number of images you want Kanzi Studio to compress in parallel. - 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. - 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. - 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. - 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. - 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. 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. ----------------------------------------------- Kanzi 3.6.3 release notes - June 25, 2018 ----------------------------------------------- New features ------------ * Focus manager. Introduced the focus manager to maintain the focus nodes in Kanzi. The focus manager includes features, such as focus scopes and fencing, separation of active and logical focus, and directional focus definitions. * Application performance profiling. Improved the application performance profiling system to include performance measurements for each frame, startup, and tools to help you visualize the performance of your Kanzi application. Kanzi now includes performance profiling builds for reference platforms. The application performance profiling system is now available to all users. * New render passes. Introduced Draw Objects With Material Render Pass and Material Setup Render Pass render passes to provide additional functionality and flexibility to rendering. * Kanzi Connect tools in Kanzi Studio. These Kanzi Connect introspection tools allow you to connect to a Kanzi Connect server and get Kanzi Connect message triggers and actions, and data sources directly in Kanzi Studio. To use the Kanzi Connect functionality, you must have Kanzi Connect installed. Feature improvements -------------------- * Combined the functionality of the Project and Nodes windows into a single Project window. - The improved Project window presents your project in a node tree view and allows you to customize how you see the structure of your project. - The Prefabs window is now included in the default Kanzi Studio layout, which enables you to readily access and use prefabs independently from the Project window. * Improvements to Preview visualizations. You can now: - View the cells in Grid Layout 2D nodes. - Customize the color and line thickness of the items you want to view when the Preview is in the Analyze mode. - Select the items you want to view when the Preview is in the Analyze mode from the dedicated Preview main menu. The Preview main menu includes also the Preview controls which were in previous versions available in the Project main menu. * You can now add rich-text descriptions to items in Kanzi Studio projects, which you can export to a plain text file which contains the item path and description. * Reimplemented KzcImage as the BitmapImage class. * New Node3D rendering API. To render 3D nodes using the new API use Node3D::renderOverride. The old Node3D rendering API is still available. * Improvements to render passes: - For a composition target you can now: - Set the depth texture format. - Create mipmaps. - Apply anti-aliasing. - Added frustum culling to the Draw Objects Render Pass. * When you automate the exporting of kzb files, you can now set Kanzi Studio to export the xml version of the kzb file. * You can now set in your Kanzi Engine plugins for the nodes you create, which properties you want to list as frequently added properties in Kanzi Studio. * To improve Kanzi Studio performance in projects with large amount of images, in the Edit > User Preferences > Advanced tab you can now configure with the Max images in wide image dropdown preference the dropdown for image properties to use a simplified, but much faster mode to show the images. * Several improvements that help you get things done in less time: - In the Project Merge tool you can now inspect contents of bindings, triggers, tags, and aliases of the projects you want to merge. - Copy a set of bindings and append them to an existing list of bindings instead of replacing the whole set of bindings. - Copy and paste individual triggers, which is useful when you have more than one definition for a message and use conditions. - Set the name of the JavaScript script when you create it with the Execute Script action. - Paste colors in hexadecimal format also without the # prefix. - Renamed the property which you can use to adjust the scale of imported 3D assets and enabled the setting of the property to values lower than 0,1. - When you export kzb files from a project that refers to other projects, Kanzi Studio now stores locale and theme packs from referenced projects to own directories in the project. - When you export kzb files from a localized project, Kanzi Studio names the kzb files _.kzb. - When you import more than one item to your project Kanzi Studio shows in the information bar the number of items and errors that occurred when Kanzi Studio completes the importing. - When you create a Blit Render Pass using the Kanzi API, Kanzi now sets it to use the default material. - You can now use the Node::notifyResourceDictionaryModified function to refresh resources after modifying a resource dictionary. - You can now use these application configuration options also in the application.cfg: - ModuleNames to set which plugins your Kanzi application loads when you launch your Kanzi application. - InputTransform to set the transformation matrix of the application screen. - LogOpenGLExtensions, LogOpenGLInformation, and LogSurfaceInformation to set Kanzi to print to the debug console information about graphics performance. Changes ------- * Updated these third-party libraries used by Kanzi Engine to fix several issues which were caused by outdated libraries: - FreeType to 2.9.1 - Harfbuzz to 1.7.6 - LibPNG to 1.6.34 - zlib to 1.2.11 * Kanzi Studio is now using .NET Framework 4.7.1 * Updated the Kanzi license terms. See KANZI UI SOLUTION LICENSE TERMS. ----------------------------------------------- Kanzi 3.6.2 release notes - April 20, 2018 ----------------------------------------------- Feature improvements -------------------- * When you use the ETC2 compression in Kanzi Studio you can now control the quality of compression and thus the time it takes to compress the images. * List Box nodes now send messages to communicate when users scroll them. If your Kanzi application uses the Scroll View node triggers and messages to find out when users scroll them, to achieve the same result in Kanzi 3.6.2, update your Kanzi application to use the List Box node triggers and messages. ----------------------------------------------- Kanzi 3.6.1 release notes - February 9, 2018 ----------------------------------------------- Feature improvements -------------------- * Improved the kzb format: - The improved format has smaller footprint, which enables faster loading on target devices. - This improved format is the default format for all new projects you create in Kanzi Studio, but the legacy format is still available. * You can now include methods in object metadata. In the API reference, see the classes Metaclass, MethodArgument, MethodArguments, MetaObject, MetaMethod. * Implemented suspension manager for Linux evdev. * Lazy memory mapping is now by default used on QNX. * You can now bypass the loading of application.cfg file using the command line option -config="". On some embedded platforms this can improve the startup performance. * Kanzi Studio now includes the application.cfg file in the apk when you create the apk from Kanzi Studio. * When you use more than one Animation Player in a node, you can now pause, resume, start, or stop a specific Animation Player on that node by setting the name of the Animation Player in the message. * Node components now filter incoming messages and handle only those whose name in the message matches the name of the component. * The default blending mode is now Premultiply Alpha. * You can now use custom brushes in Kanzi Studio. * Improved the Project Merge dialog. The dialog now: - Shows only the differences between projects you are merging. - Shows the URL of both target and source projects. * Improved merging of 3D assets: - You can now merge splines from fbx files. - In Kanzi Studio you can now use the Asset Merge dialog to merge content from 3D assets. * Performance HUD now shows triangle count. * Several Kanzi Studio usability improvements, such as: - You can now export recursively kzb files from all referenced projects in a project which refers to multiple projects. - You can now copy kzb URL of data objects in a data source. You can readily use these URLs in your application code. - You can now remove at once all invalid animations from a state transition. - You can now copy and paste the items in the Node Components between nodes. - Improved the diversity of resource icons in the Library and improved the color contrast for some items listed in the Properties to improve readability. - When you import a mesh that uses skinning, Kanzi Studio now sets the Material property of the mesh clusters to VertexPhongSkinnedMaterial. - When you import a morph object, Kanzi Studio now sets the Morph object to use the VertexPhongMorph material type. ----------------------------------------------- Kanzi 3.6 release notes - October 23, 2017 ----------------------------------------------- New features ------------ * Multi-project. You can now use Kanzi Studio to combine multiple Kanzi Studio projects and kzb files into a single Kanzi application. * Application idle state. Kanzi suspends the main loop when there is no input, tasks, timers, animations, or when there is nothing in the application that updates the rendering. Feature improvements -------------------- * Renewed the render passes. The changes introduce improved rendering performance and render passes that are easier to use. Each of the new render passes provides specific functionality. Combine render passes to get the rendering result you want to achieve. * You can now define namespace for a project to avoid custom property type conflicts when you use more than one Kanzi Studio project or kzb file in a single Kanzi application. * Use the new Mesh Attributes Editor to optimize the meshes in your application. * Use the new Shader Attributes Editor to view and edit the semantics of the shader attributes of a material type. * Updated all material types to include preprocessor defines. * Simplified how you set the metadata for Kanzi Engine plugins. * You can now set the PNG compression level for the PNG images in your Kanzi Studio projects. * You can now set Kanzi Studio to remove the ICC profile from PNG files when you export a kzb file from your project. * You can now set the maximum number of resources processed by the loading threads. * Added TaskDispatcher API which enables you to send tasks to the Kanzi UI thread from other threads. * Added these base classes to the Object class, the functionality of which was in the Object class in the earlier versions of Kanzi: - PropertyObject is a base class for objects that support setting and retrieving objects. - MetaObject is a base class for objects that provide reflection. * Added Mesh::CreateInfo and ShaderProgram::CreateInfo functions. * Added enums for the new ES 3 formats for vertex attributes. * Added support for std/boost thread/mutex to allow use of standard thread class instead of KzsThread. * You can how use 64-bit Linux computer as a floating license server for Kanzi Studio licenses. * User preference change when importing 3D assets. The workflow in Kanzi Studio changed so that you now need most of the time only the animation clips when you import 3D assets with animations. To reflect this change, in User Preferences the default setting for the Create animation clips for target objects when importing 3D assets is disabled. * Numerous usability improvements including: - Triggers and Animations are now in the Node Components window. - Added colored icons for nodes and resources, which help you identify content faster. - Added colors to the Preview visualizations, which help you inspect your project in the Analyze mode. - You can now access the Preview tools without separately entering the Edit mode. Just select the tool you want to use and you are good to go. - You can now add nodes and properties to JavaScript scripts without typing. Drag and drop nodes from the Project and properties from the Properties to a script in the Script Editor. - Reorganized the content of context menus to first show the most common commands. - You can now add a resource dictionary to a node in the Dictionaries window. - Improved the default Kanzi Studio workspace layout. - When you import 3D assets Kanzi Studio now uses Render Transformation by default. You can change this setting in the Edit > User Preferences > Advanced tab. - You can now set the icon for the nodes you define in a Kanzi Engine plugin.