Kanzi 3.2 release notes ========================= New features ------------ * Animation system. Kanzi 3.2 comes with the new animation system that is more flexible, efficient, robust, easier to use, and enables you to create animations you could not create with the old animation system. * Easing functions. In the state manager you can now use easing functions and easing modes to animate the transitions between states. Feature improvements -------------------- * The state manager now includes: * Start Time property you can use to set the delay after which the transition to that state starts. * Improved 3D transform interpolation so that you can use in transitions either the shortest or the longest path. * You can now set in your Kanzi Studio project the textures you want to use as the default single and cubemap textures, or remove them completely to decrease the size of the exported .kzb. * Added support for prefiltered cubemaps so that you can provide cubemap faces and their mipmaps in a single .dds image. For example, this allows you to create prefiltered mipmapped radiance environment map to simulate environment reflections, and irradiance cubemap for diffuse lighting of models. * Enforced stricter requirements for the cubemap faces. Cubemap faces now have to be square and of the same size. * The default value of the Mipmap Mode property is now Base instead of Nearest. In Kanzi Studio enable the generation of mipmaps for images in textures that need mipmaps. * Several significant Kanzi Studio performance improvements when importing and working with localization tables. * Improved support for PSD layers with long names. * Improved support for long file system paths. * Changed the 3D node picker in the Preview to avoid picking the current Camera node and re-enabled the depth buffer in the 3D picker. * Disabled the default clipping in all 2D layout nodes. API changes ----------- In addition to the Kanzi Engine changes related to feature improvements, these are the changes to the Kanzi Engine API: * Added the new animation system. * Converted and improved the renderer API to C++. * Concluded the conversion of property and message types to C++. * Changed the Light nodes and mesh morphing to work without struct and array property types. * Removed struct and array property types. * Concluded the conversion to use only normal shared_ptr's to track resource objects. * Converted constraints to use bindings. * Exposed frequently used std and boost classes and functions through the Kanzi namespace. * Added window z-order integer property in KzsWindowProperties. Note that valid value range is specific to the platform where you run your application. * Always use RGBA format for render targets. RGB texture format is not guaranteed to be renderable in OpenGL ES. * Added single API to print OpenGL information Renderer::logOpenGLInformation(). This replaces kzsLogOpenGLInformation() and Renderer::printInfo(). * Improved Image2D::updateRenderOverride(). * RenderStateResourceContainer() now supports Framebuffers. * Improved the separation of the default assets of application and the Preview. * Integration: * Added Integrity WSEGL and Mali fb native window support * Integrity GHS FB API windowing system * Integrity GHS GBM windowing system * Integrity RCar-H2 build configuration * Upgraded these libraries used by Kanzi: * libjpeg to version 9a * libpng to version 1.2.52 * zlib to version 1.2.8 Documentation ------------- * Added new tutorials: * Learn how to create a toggle button. * Learn how to create a slider. * Learn how to rotate with a swiping gesture a 3D model in your application. * Learn how to make your user interface respond to the changes of the device screen resolution. * Added instructions on how to use Morph to change one shape into another through a seamless transition. * Updated the documentation visual style to make it easier to use and read. Fixes in Kanzi Studio --------------------- * Kanzi Studio now correctly merges or imports triggers from projects. * Kanzi Studio now correctly converts Boolean property types to enums. * When importing or merging projects, project data files are now correctly imported or merged. * The Node tool now scales nodes based on field of view. * You can now import the fonts in the OTF format using the font importer in Kanzi Studio. * Kanzi Studio now correctly creates projects even when non-Latin characters are in the project path. * Kanzi Studio now correctly removes the Layout Transformation property on the Screen node. * When you change a state the Preview now correctly updates the Preview camera. * The Preview Text Block 2D tool now correctly works with the Text Block 2D nodes in the Prefabs. * Kanzi Studio now correctly generates normals when in Library > Meshes you right-click a mesh and select Generate Normals. * The Pages now shows all Page nodes regardless of the zoom level and number of Page nodes. * The Pages is now synchronized with the changes in the Project. * The Pages window now correctly shows the lines connecting the Page nodes. * The copy and paste keyboard shortcuts now work properly in the Pages. * Kanzi Studio no longer crashes when you import localization tables with missing properties. * Shader code no longer crashes Kanzi Studio. * When you undo removal of a property, the Preview now correctly shows the action of undoing. * Kanzi Studio now pastes a copied action from a trigger. * Kanzi Studio now correctly opens the Kanzi documentation on Windows 10. * Using Set Property Value action on property attributes no longer causes the Preview to crash. * Using a resource ID as a value for the Style property now works correctly. * Kanzi Studio now correctly moves around localization tables when you use your keyboard keys. * Binding Argument Editor no longer adds Node3D for 2D node Render Transformation and Layout Transformation properties. * When you create new state groups in the State Tools, Kanzi Studio no longer creates conflicting states. * Using drag and drop in the Binding Argument Editor for state controlled properties in state editing mode now works correctly. * Kanzi Studio now correctly resolves identical trigger actions. * You can now add triggers to state managers using the context menu in the Triggers. * You can now set the Task Name for Preload Resources action. * When you rename a material custom property type, the properties that use that property type do not lose their values anymore. * The Performance HUD now shows more accurate data. * After renaming an alias Kanzi Studio now shows the correct name in all references to that alias. * Fixed the issue that prevented pasting triggers to several nodes at once. * Fixed several issues related to the Pages. * Fixed several issues encountered when working with the localization content. * Fixed several issues to improve deploying Kanzi applications to Android. * Fixed several issues to improve the functionality and usability of the Node tool. * Find Project Item now correctly lists Prefabs when you use Advanced Search. * Kanzi Studio now correctly prompts when you try to close a project with unsaved changes. * Fixed several issues that caused Kanzi Studio to become unstable or crash. * Fixed the leak that caused Kanzi Studio to become sluggish when used for a long time. * Fixed the issue that prevented Kanzi Studio from starting on computers with the .NET Framework 4.6 installed. * Fixed the issue that caused the Camera node to move after saving the project when the free camera is in use. Fixes in Kanzi Engine --------------------- * Fixed the corrupted command-line arguments in Win32 release build. * Added the detection of Mali GPUs to disable broken half-float vertex attribute on those GPUs. * executeNavigationEntry() no longer invalidates the iterator. * Disconnected previewProperties.extensionOutputEnabled from Application::initializeProfiling(). Now Application::mainOverride() handles extensionOutputEnabled after context GL is created. * Fixed the issue where meshes that use invalid textures did not get rendered. * Set the Node2D::createFramebuffer() to always use the RGBA texture format because the RGB format is not always supported. * Fixed the issue that caused the Navigate to Page action to loop when the target was the RootPage node. * The Grid List Box node no longer ignores the Recognition Threshold property. * Fixed the handling of render target textures in brushes and materials. * The EmptyNode2D::create now creates the color brush automatically. * Fixed the issue that prevented the Color Brush from restoring after resume. * The Scroll View node Scroll Bounds Minimum and Scroll Bounds Maximum properties now work properly. * Fixed the issue that caused Kanzi Engine to ignore the Message Source set in Kanzi Studio. * Trajectory List Box 3D using Item containers now works correctly with Empty Node nodes. * Kanzi now prints the list of EGL extensions. * Fixed the memory leak and corruption in the Glyph cache. * Fixed the Toggle Button issue that caused the State Manager to react only when the Controller Property value is present. * The Node2D_plugin example now works on Android. * The thumbnails in the State Tools are now rendered correctly. * Fixed the issue where scrolling the mouse wheel sets of the Is Down controller property. * Fixed the issue that caused Kanzi Engine to misbehave when you defined a property with the same name but different data types in multiple .kzb files. * Re-enabled the stripping of debug symbols in Android release builds to decrease the size of .apks. Stripping is done for project output .so.