Kanzi 3.7 发行说明

新增功能

  • 活动

    活动系统允许您定义应用程序用户界面的结构并实现用户界面导航。请参阅 活动。

  • 渲染通道预设

    引入了渲染通道预设,您可以使用它们创建渲染通道树,以定义 Kanzi 如何在您的项目中渲染 3D 内容。您可以在应用程序中自定义和重用渲染通道预设。请参阅 渲染 (Rendering) 和 使用渲染通道。

    ../../_images/create-group-render-pass.png
  • Bindings

功能改进

  • 更改了绑定接口:

    • 将接口拆分为绑定 (AbstractBinding) 和绑定运行时 (AbstractBindingRuntime)。

    • 绑定源 (BindingSource) 和绑定目标 (BindingTargetRuntime) 现在作为独立对象工作。它们实现了对对象、数据源和消息的读写。您可以从直接值或资源中读取绑定源。

  • 改进了性能剖析系统:

    • 添加了几个启动和主循环性能分析类别。请参阅 测量 Kanzi Engine 的性能。

    • 添加了 ApplicationProperties::mainLoopProfilingSampleBufferCount。您可以使用它来设置主循环分析器中的数据样本数量。请参阅 主循环剖析样本缓冲区计数。

    • 添加了资源分析上下文属性 ResourceProfilingContext::Duration。您可以使用它来测量加载和部署资源所需的时间,包括该资源所依赖的资源。请参阅 测量资源的加载和部署时间。

    • 为每个分析器添加了回调。Kanzi 在添加分析样本导致缓冲区满时调用这些回调。

  • 对焦点管理进行了以下改进和更改:

    • 现在有以下几种类型的焦点范围:Group、Fence、Modal 和 Popup。使用 Focus Scope Type 属性(FocusManager::FocusScopeTypeProperty)来设置焦点范围的类型。由于此更改,FocusManager::FocusScopeProperty 现已弃用。请参阅 焦点 和 使用焦点。

    • 添加了 DirectionalFocusNavigationReason,以便您可以将焦点链导航(Tab 和 backtab)与方向焦点导航(上、下、左、右)区分开来。

    • getScopeFocusedNode() 函数现在仅返回焦点范围的最后一个逻辑焦点节点。如果嵌套的焦点范围设置了 Logical Focus 属性,这可以是嵌套在焦点范围节点中的节点。

    • setScopeFocusedNode() 函数现在设置焦点范围的逻辑焦点节点。该函数也适用于嵌套范围。

    • 当您现在在节点上启用 Logical Focus 属性 (Node::LogicalFocusProperty) 时,确保将该节点设为其所属焦点范围内唯一的逻辑焦点节点。

    • Node::trySetActiveFocus() 函数现在返回聚焦的节点或其子节点。

    • 使用 Next Focus Node 和 Previous Focus Node 属性(FocusManager::NextFocusNodePathProperty 和 FocusManager::PreviousFocusNodePathProperty)来覆盖焦点链导航路由时,Kanzi 仅在焦点链导航离开该焦点范围后才考虑覆盖。

  • 对 InputManipulator 类进行了以下更改:

    • 在触摸或鼠标输入序列期间,实现了对 StateCanceled 和 StateDelayed 输入操控状态的支持。

    • InputManipulator::cancel() 函数现在取消未完成的手势,而 InputManipulator::onCancel() 函数对手势取消作出反应。

    • 将这些消息添加到通知手势取消的输入操控器中:

      • DragAndDropManipulator::CanceledMessage

      • LongPressManipulator::LongPressCancelMessage

      • MultiClickManipulator::CanceledMessage

      • PanManipulator::CanceledMessage

      • PinchManipulator::CanceledMessage

  • 对字形、字体和文本进行了以下更改:

    • 添加了 FontManager 类。使用此类来设置当前字体光栅化引擎、创建字体、访问字体加载器以及访问字形缓存管理器。

    • 添加了 Hyphenate 属性 (TextBlockConcept::HyphenateProperty),以便您可以配置 Text Block 节点中文本的连字。

    • 默认情况下,自动换行现已禁用。要在 Text Block 节点中创建多行文本,请添加并启用 Word Wrap (TextBlockConcept::WordWrapProperty) 属性。

    • 将这些类转换为 C++:

      • Font

      • iTypeFont

      • FreeTypeFont

      • TextFormat

      • TextLayouter

      • TextLayout

      • GlyphCache

      • GlyphCacheManager

  • 将这些 Kanzi Engine 类转换为 C++:

    • Plane

    • Quaternion

    • Ray

    • Spline

  • 添加到 ResourceManager 函数中,使您能够检索加载器线程的句柄,以便应用程序代码可以调整其设置。Resource manager 在应用程序启动期间创建其所有加载器线程,并且在应用程序运行的其余时间内不会添加或删除加载器线程,除非在关闭期间。请参阅 ResourceManager::getLoaderThreadHandle 和 ResourceManager::getLoaderThreadCount。

  • 改进了为 Android 创建 Kanzi 应用程序的工作流程:

    • 您现在可以使用 Android Studio 和 Gradle 构建系统,将 Kanzi 应用程序构建和部署到 Android。

    • 在 Edit > User Preferences > Advanced > Open Build Environment Configuration 中,您现在可以设置 ANDROID_HOME 和 JAVA_HOME 环境变量,这些是将应用程序部署到 Android 设备所需的。

  • 您现在可以为 Kanzi Studio Preview 配置抗锯齿。请参阅 在 Preview 和 Application Player 中设置抗锯齿。。

  • Kanzi Studio Preview 不再使用已弃用的旧版 kzb 格式。要使用已弃用的旧版 kzb 格式,在 Project > Properties 中设置 Preview Kzb Version 属性。

  • 添加了 Hover 属性 (Node::HoverProperty)。Kanzi 更新可命中测试节点及其父节点的 Hover 属性,以指示节点是否为光标下最前面的节点。

  • 在 Composition Target Render Pass 中,Resolve Immediately 属性现在默认情况下已启用。

  • 您现在可以为您的 Kanzi 应用程序配置图形初始化。请参阅 图形性能日志。

  • 改进了元数据属性语法的一致性,以设置如何在 Kanzi Studio 中显示 Kanzi Engine 插件自定义类型。请参阅 在 Kanzi Studio 中显示 Kanzi Engine 插件自定义类型的参考。。

  • 在 Kanzi Studio 插件接口中,您现在可以使用 IUserPreferences 接口来存储与项目无关的 Kanzi Studio 窗口插件的设置。请参阅 Kanzi Studio 插件 API 参考。

  • 多个 Kanzi Studio 可用性改进可帮助您在更短的时间内完成任务:

    • 在 Node Tree 中,您现在可以使用 Ctrl H 快速隐藏 Page 和 Page Host 节点。

    • 现在您可以在 Kanzi Studio 中设置隧道消息处理程序。

    • 当您清理 Kanzi Studio 项目时,为了避免删除 Kanzi Engine 应用程序代码使用的预设模板,您现在可以启用 Is Used By Code 属性。请参阅 删除项目未使用的资源和预设。

      ../../_images/show-prefab-template-properties.png ../../_images/prefab-template-is-used-by-code-enabled.png

更改

  • 添加了对 Visual Studio 2017 的支持。Kanzi 不再支持 Visual Studio 2013。

  • Kanzi 现在需要 C++14。

  • 新增了对 Android x86_64 的支持。

  • 将 libjpeg 更新到版本 9c。

  • 将 FBX SDK 更新到了 2019.2 版本。

  • 更新了 Kanzi 许可条款。请参阅 KANZI ONE SOFTWARE LICENSE TERMS。

文档 (Documentation)

  • 改进了相应教程,帮助您更有效地学习如何将键盘输入添加到您的 Kanzi 应用程序中,以展示如何使用焦点范围和触发器。

  • 改进了教程,帮助您学习如何从数据源获取数据以用于您的 Kanzi 应用程序,使用 TaskDispatcher 和工作线程来跟踪数据源中的更改。请参阅 教程:从数据源获取应用程序数据。

    ../../_images/end-of-step-3.png
  • 添加了有关如何使用 Kanzi 日志系统将消息打印到 Log 窗口、Kanzi 调试控制台、标准输出以及目标设备上的系统日志的说明。请参阅 日志。

  • 添加了有关如何在 Kanzi API 中使用贝塞尔关键帧的文档。请参阅 KeyframeAnimation::BezierKeyframe。

修复

修复了问题以提高 Kanzi 的稳定性和可用性。

另请参阅

Kanzi 3.7 迁移指南

已知问题