Kanzi 3.9.7 发行说明¶
活动和代码隐藏¶
在 Activity Browser 中,当一个 Activity 节点是根节点时,Kanzi Studio 现在会发出警告。在这种情况下,Kanzi Studio 会自动将该 Activity 的 Activity Status 属性设置为 Active。如果您想在应用程序中将该 Activity 用作根 Activity,请考虑到这一点。
在 Kanzi Studio 中,您现在可以创建一个类型为 String 的 Activity Property。
例如,这使您能够在活动被停用时保留用户在文本框中输入的文本。
当在激活活动期间资源加载失败时,Kanzi 现在记录错误原因。
Kanzi Studio 现在仅为当前的 Preview 配置从 Activity Browser 构建 Code Behind。
Kanzi Studio 现在不允许您在创建 Kanzi Code Behind 插件后重命名该插件。
绑定 (Bindings)¶
添加了
format绑定函数,您可以使用它将属性值格式化为字符串。请参阅 格式 (Format)、格式化属性值的显示 和 在本地化字符串中设置文本顺序。
当您设置绑定时,您现在会获得一个不拥有或阻止该绑定移除的句柄。当您调用
BindingHostConcept::removeBinding时,BindingRuntimeHandle中的弱指针不会阻止绑定的移除。要迁移您的 Kanzi 应用程序,请参阅 更改绑定的设置和移除。
从
binding_processor_runtime.hpp中移除了m_lookupContext类成员,因为BindingProcessorRuntime可以访问提供查找上下文访问器的BindingRuntime。请参阅 绑定 API 的更改。
列表框和滚动视图¶
您在 Kanzi Studio 中创建的 List Box 节点和 List Box Item Container 预设现在是焦点范围,并默认处理键焦点和键输入。这使您能够在每个列表项中的可聚焦列表项和可聚焦节点之间导航焦点。
在 List Box 中,默认情况下,项目选择和键焦点现在是同步的。
请参阅 在 List Box 节点中处理键焦点。。
引入了这些属性,您可以使用它们来反转触摸滚动的方向:
在 Scroll View 节点中,Reversed X Axis Scroll (
ScrollViewConcept::ReversedXAxisScrollProperty) 和 Reversed Y Axis Scroll (ScrollViewConcept::ReversedYAxisScrollProperty) 属性。在 List Box 节点中,Reversed Scrolling (
TrajectoryListBox3D::ReversedScrollingProperty、GridListBoxConcept::ReversedScrollingProperty)属性。
网格和变形¶
网格现在支持双法线属性语义。这使您能够使用存储在网格数据中的双法线通道,而不是在着色器中生成双法线。
Kanzi 现在支持同时激活任意数量的变形目标。请参阅 使用变形。
渲染 (Rendering)¶
引入了 Render target > Multisample Level (
Node2D::MultisampleLevelProperty) 属性,使您能够将多重采样抗锯齿应用于其内容 Kanzi 渲染到合成目标的 2D 节点。请参阅 多重采样 2D 内容。您现在可以使用范围作为输入参数传递给用于渲染画笔的着色器中的统一变量。 当您使用范围作为数组统一变量的参数时,Kanzi 会用该范围中的元素填充数组。
资源管理¶
您现在可以在应用程序配置中设置当您的 Kanzi 应用程序处于暂停状态时如何处理 GPU 资源。例如,您可以设置您的应用程序在暂停状态时销毁所有 GPU 资源。
在 Android 上,GPU 资源默认情况下变得无效。在其他平台上,Kanzi 默认情况下不再使 GPU 资源无效。
请参阅 处理GPU资源。
Kanzi Studio 可用性¶
当您使用 Android application 或 Android application with Java plugin 模板创建项目时,您现在可以为项目设置 Android 包的名称,并且当您添加 Code Behind 时,可以设置 Code Behind 包的名称。请参阅 使用 Kanzi Android framework (droidfw) 进行开发时。
您现在可以从 Kanzi Studio 在 Android Studio 中打开一个 Android 项目。
添加了一条命令,可让您将项目的启动预设 URL 复制到剪贴板。
对于自定义属性类型,添加了一个上下文菜单命令,使您能够在 Library 窗口中选择该属性类型。
发布的亮点现在直接展示在 Kanzi Studio 中。
您现在可以让 Kanzi Studio 向 Rightware 发送匿名使用数据,以帮助我们了解如何改进 Kanzi Studio。请参阅 遥测。
Kanzi Engine C++ API¶
在日志中,Kanzi Engine 现在显示
KzuExpressionValidatorOperation枚举器名称,而不是它们的内部类型值。这使得在使用 Kanzi Engine C++ API 创建绑定时更容易发现绑定中的问题。添加了
DynamicPropertyType::tryCreate函数,该函数返回一个OptionalDynamicPropertyType。您可以使用可选类型来声明一个DynamicPropertyType而不进行初始化。将 Win32 WGL 图形输出 API 从 C 转换为 C++ 并改进了该 API。
Kanzi Java API¶
Kanzi Java API 现在支持具有枚举数据类型的属性。要迁移您的 Kanzi 应用程序,请参阅 对枚举属性的支持。
当您导入不在
lib/java/<BuildType>/路径中的 Kanzi Engine Java 插件文件时,Kanzi Studio 现在将它们标记为无效。
Kanzi Android framework (droidfw)¶
更新了 Kanzi Android framework (droidfw) 项目模板以使用 Gradle 7.3.3 和 Android Gradle Plugin 7.2.2。
Kanzi Studio 插件接口¶
添加了
DataUtilities.GetCombinedHashCode,用于获取给定整数类型参数的组合哈希代码。Added
Project.GetPreviewConfigurationthat gets the Preview application configuration that Kanzi Studio currently uses.您现在可以使用 Kanzi Studio 插件接口来创建和应用 2D 效果。请参阅
Project.CreateNodeEffectPrefab2D和Project.CreateNodeEffect2D。
平台¶
添加了一个应用程序配置,使您可以在使用 GBM 窗口系统的平台上设置要让您的 Kanzi 应用程序使用的图形卡。请参阅 DeviceIdentifier 和 更改图形输出和桌面。
更新了 Integrity 平台包以使用 HarfBuzz 5.3.1。
Kzb 版本 (Kzb Version)¶
将 kzb 文件格式版本更改为 25.0。
文档 (Documentation)¶
添加了有关活动之间如何转换的详细说明。请参阅 活动的状态管理。
添加了可视化活动过渡类型的动画。要查看过渡的动画,请将鼠标悬停在该过渡的图像上。请参阅 活动过渡类型。
添加了有关如何使用脚本导入 PO 文件以用于本地化表的说明。请参阅 ImportAllLocalizationTables。
添加了视觉内容以支持使用 Flow Layout 节点的说明。请参阅 使用 Flow Layout 节点。
重新设计了教程,您可以在其中学习如何应用高斯模糊效果以及如何在满足条件时应用该效果。请参阅 教程:创建高斯模糊效果。
重新设计了教程,您可以在其中学习如何创建切换按钮。请参阅 教程:创建一个切换按钮。
显著修复¶
Kanzi Engine¶
修复了导致 Kanzi 在空字形(例如空格字符)位置渲染小四边形的问题。(143042)
修复了导致焦点范围的最后一个聚焦节点在成为焦点范围时总是获得逻辑焦点的问题。(426990)
修复了导致 Toggle Button Group 在
ToggleButtonGroupConcept::ToggledMessage中为活动 Toggle Button 设置错误索引的问题。(436417)修复了当您将资源设置为 Source Item 时阻止 Set Property 操作工作的问题,并将 Target Item 中的项目限制为节点。(441283)
修复了当 Kanzi 附加修饰符绑定时导致两个属性更改通知而不是一个的问题。例如,当 Kanzi 执行 Apply Property Action 时。(443038)
统一了绑定的查找上下文,这略微减少了内存占用并提高了性能。(443610)
修正了 Kanzi Java API 中
BindingProcessor的层次结构。(444467)修复了阻止 Kanzi Studio Log 窗口在 Kanzi Engine 日志消息中正确显示 Unicode 字符的问题。(445591)
修复了在某些情况下,在活动转换期间激活另一个活动时,导致独占活动主机中的活动保持活动状态的问题。(449575)
修复了在渲染实例化网格后,Kanzi 多次渲染后续2D对象的问题。(451135)
修复了当使用 FreeType 字体引擎渲染具有固定大小位图字形的 TrueType 字体时导致 Kanzi 终止的问题。(451578)
修复了在使用 iType 字体引擎渲染带有彩色位图字形的 TrueType 字体时导致 Kanzi 终止的问题。(451644)
Performance HUD 现在报告所有网格实例的三角形计数。(451874)
修复了一个问题,该问题导致如果可用 Kanzi 的副切线通道,则无法在网格中正确映射切线通道。(452375)
修复了导致
kanzi::updateVertexAttributeOffsetsAndVertexSize和kanzi::updateVertexAttributeStrides函数错误地更新实例化网格的顶点格式信息的问题。(452578)修复了二次
ResourceManager::purge时间复杂度和线性资源移除时间复杂度,以提高资源移除和ResourceManager::purge性能。(454362)修复了每次加载 kzb 文件时导致文件描述符泄漏的问题。当在同一进程中频繁创建包含 Kanzi 内容的活动时,这会导致当进程中的文件描述符数量达到上限时,Android 终止应用程序。(454389)
修复了当您重写
Screen类的 Metaclass 时导致本地化无法工作的问题。(455169)修复了
kzCameraNearFarPlane着色器统一变量。(455708)
Kanzi Studio¶
修复了当您重命名使用 Java Code Behind 的 Android 应用程序的包时破坏 Kanzi Studio 功能的问题。(410677)
修复了要求 Kanzi 用户安装 Visual Studio 2017 以使用 Code Behind 功能的问题。(422915)
在 Write Log 操作中,修复了 <EventName> 宏以打印消息触发器的名称和消息类型,而不是
Kanzi.MessageTrigger。(435792)Kanzi Studio 不再无法导入在 glTF 文件中使用特定于应用程序的语义的网格属性。Kanzi Studio 对这些属性使用 CUSTOM 语义,并以 glTF 属性语义命名它们。(445105)
在 Activity Browser 中,修复了对使用相同 Activity Prefab Template 属性值的活动进行拖动的问题。(449142)
修复了一个问题,该问题导致无论光标位置如何,Kanzi Studio 都会在 Write Log 操作的 Log Text 属性的开头插入一个宏。(450567)
修复了在新创建的项目中,Kanzi Android Framework 项目可能错误引用项目 kzb 文件的问题。(451511)
修复了导致 Kanzi Studio 交换 Flip Vertical 和 Flip Horizontal 活动转换名称的问题。(454405)
修复了当项目使用从
ForwardingAction类派生的类派生的自定义操作时导致 kzb 加载失败的问题。(455848)
Kanzi framework SDK¶
修复了使用 SCons 4.5 时 SCons 构建脚本无法正常工作的问题。(455514)