Kanzi 3.7 发行说明¶
新增功能¶
活动
活动系统允许您定义应用程序用户界面的结构并实现用户界面导航。请参阅 活动。
渲染通道预设
引入了渲染通道预设,您可以使用它们创建渲染通道树,以定义 Kanzi 如何在您的项目中渲染 3D 内容。您可以在应用程序中自定义和重用渲染通道预设。请参阅 渲染 (Rendering) 和 使用渲染通道。
Bindings
引入了 To Source 绑定,使您能够将属性值推送到另一个节点或渲染通道。请参阅 绑定 (Bindings)。
添加了对渲染通道中绑定的支持。请参阅 自定义渲染通道预设件的实例。
您现在可以使用 getCurrentValue 绑定函数来获取您想要绑定的属性的当前值。
功能改进¶
更改了绑定接口:
将接口拆分为绑定 (
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::CanceledMessageLongPressManipulator::LongPressCancelMessageMultiClickManipulator::CanceledMessagePanManipulator::CanceledMessagePinchManipulator::CanceledMessage
对字形、字体和文本进行了以下更改:
添加了
FontManager类。使用此类来设置当前字体光栅化引擎、创建字体、访问字体加载器以及访问字形缓存管理器。添加了 Hyphenate 属性 (
TextBlockConcept::HyphenateProperty),以便您可以配置 Text Block 节点中文本的连字。默认情况下,自动换行现已禁用。要在 Text Block 节点中创建多行文本,请添加并启用 Word Wrap (
TextBlockConcept::WordWrapProperty) 属性。将这些类转换为 C++:
FontiTypeFontFreeTypeFontTextFormatTextLayouterTextLayoutGlyphCacheGlyphCacheManager
将这些 Kanzi Engine 类转换为 C++:
PlaneQuaternionRaySpline
添加到
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 属性。请参阅 删除项目未使用的资源和预设。
更改¶
添加了对 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和工作线程来跟踪数据源中的更改。请参阅 教程:从数据源获取应用程序数据。
添加了有关如何使用 Kanzi 日志系统将消息打印到 Log 窗口、Kanzi 调试控制台、标准输出以及目标设备上的系统日志的说明。请参阅 日志。
添加了有关如何在 Kanzi API 中使用贝塞尔关键帧的文档。请参阅
KeyframeAnimation::BezierKeyframe。
修复¶
修复了问题以提高 Kanzi 的稳定性和可用性。