Kanzi 3.9.8 发行说明¶
2D 效果¶
引入了 Effect Stack 2D 效果,使您可以对节点应用多个效果。请参阅 使用多个效果。
您现在可以在效果中使用绑定,并从效果预设中发布属性。请参阅 自定义 2D 效果预设件的实例。
您现在可以在 Outline Effect 2D 和 Shadow Effect 2D 效果中设置 Blend Mode。
例如,使用 Multiply (advanced khr) 混合模式来创建更真实的阴影。
活动¶
默认情况下,当 Kanzi 虚拟化一个 Activity 时,它会序列化该 Activity 的 Activity 属性。当 Kanzi 取消虚拟化该 Activity 时,它会反序列化该 Activity 的 Activity 属性并恢复其 Activity 属性的值。您现在可以使用这些属性来控制 UI 状态的这种保留:
在停用一个 Activity 时,Preserve History 属性允许您控制该 Activity 及其子 Activity 的 Activity 属性值的序列化。
在激活一个 Activity 时,Activate Activity 消息的 Reset History 参数允许您控制该 Activity 及其子 Activity 的 Activity 属性值的反序列化。您可以对 Deactivate Activity 消息使用相同的消息参数,以控制是否序列化已停用的 Activity 的值。
请参阅 控制虚拟化。
有关迁移说明,请参阅 ActivityHostConcept API 的更改。
在 Kanzi Engine C++ API 中,改进了活动主机行为的自定义。在您的自定义实现中,您现在可以重写这些函数:
在 Kanzi Studio 中对 Code Behind 工作流程的改进:
Activity Browser 现在在构建 Code Behind 时显示进度。
Kanzi Studio 现在在构建 Code Behind 失败时提供更多详细信息。
Android¶
减少了调试库中的辅助调试信息量。这降低了APK文件的大小,使您能够更快地将应用程序部署到目标设备。
更新了 Android 平台包和模板以支持 JDK 11 和 17。要迁移您的 Kanzi 应用程序,请参阅 对 Android 应用程序模板的更改。
渲染 (Rendering)¶
您现在可以控制渲染通道更新其合成目标的速率。请参阅 分配合成目标的渲染 和 分配立方体贴图反射的渲染。
引入了 Cubemap Render Target Texture 资源。您现在可以将 Cubemap Render Pass 渲染到立方体贴图渲染目标纹理,并将该纹理设置为材质的立方体贴图纹理。请参阅 创建立方体贴图反射。
着色器 (Shaders)¶
您现在可以配置您的应用程序以缓存着色器二进制文件。使用着色器二进制缓存来提高 Kanzi 应用程序在离线着色器编译工具不可用的平台上的性能。请参阅 缓存着色器二进制文件。
窗口管理 (Windowing)¶
将 X11 EGL 图形输出 API 从 C 转换为 C++ 并改进了该 API。
将 Android Window Surface EGL 图形输出 API 从 C 转换为 C++ 并改进了该 API。
有关迁移说明,请参阅 对 EGL API 的更改。
您现在可以使用 EGL 图形格式 ID 来选择 EGL 配置。请参阅 EGLGraphicsFormatID。
将 Wayland EGL 图形输出 API 从 C 转换为 C++,并对该 API 进行了以下改进:
您现在可以设置 Kanzi 使用的 Wayland shell。请参阅 Wayland shell。
添加了对 XDG shell 的支持,并将其设置为默认。
对于 IVI shell,您可以设置 Kanzi 使用的 IVI surface ID。请参阅 Wayland IVI surface ID。
在 Kanzi Engine C++ API 参考中,请参阅
wayland::DefaultWaylandEGLGraphicsOutput。引入了 Wayland IVI EGL 图形输出 API。通过使用此 API,Kanzi 应用程序利用 IVI 扩展在屏幕上定位其窗口。
为 IVI 扩展添加了多个应用程序配置。请参阅 Wayland IVI 扩展配置。
您可以将 API 用于 XDG 和 IVI shells。
在 Kanzi Engine C++ API 参考中,请参阅
kanzi::wayland::DefaultWaylandIVIEGLGraphicsOutput。更改了设置颜色通道和深度缓冲区大小以及抗锯齿采样数量的表面属性的默认值。请参阅 表面属性。
有关迁移说明,请参阅 对默认表面属性的更改。
您现在可以在
application.cfg文件和命令行中为 EGL IMG 上下文设置优先级提示。请参阅 EGLIMGContextPriority。您现在可以在命令行上设置表面颜色空间。请参阅 SurfaceColorSpace。
输入处理¶
关键事件翻译现在保留了操作系统特定的原始键代码:
KeyEvent保留已翻译键事件的原始键代码。KeyMapEventFilter存储已翻译键事件的原始键代码。KeyRepeatGenerator会重复翻译后的和原始的按键事件。
网格 (Meshes)¶
引入了这些函数,您可以使用它们在运行时检查实例化的
Mesh:
Kanzi Studio 可用性¶
您现在可以通过在 Properties 窗口中右键单击属性并选择 Remove Property And Binding,从节点中删除属性及其关联的 To Source 绑定。
如果您使用 Kanzi Studio project 模板创建了一个项目,当您右键单击 Library > Build Configuration > <Build Configuration> 并选择 Create Kanzi Application Directory Hierarchy 时,Kanzi Studio 现在将从
<KanziWorkspace>/Templates/Basic_application将应用程序模板复制到项目中。当 Kanzi Studio 项目没有有效的 Android 构建配置时,您选择 File > Export > Build Android Package,Kanzi Studio 现在在 Library > Build Configurations 中创建一个 Android 构建配置。
Kanzi Java API¶
在
FontFamily类中添加了FontFamily.addFontFile和FontFamily.getFontFile函数。
Kzb 版本 (Kzb Version)¶
将 kzb 文件格式版本更改为 27.0。
文档 (Documentation)¶
添加了一个教程,帮助您学习如何在活动之间创建动画过渡。请参阅 教程:在活动之间动画过渡。
添加了一个教程,帮助您学习如何为您的 Kanzi 应用程序创建 UI 导航。请参阅 教程:为应用程序创建 UI 导航。
添加了视觉内容以支持使用 Trajectory Layout 节点的说明。请参阅 使用 Trajectory Layout 节点。
更新了 Android Jetpack Compose 示例。现在,该示例还展示了如何在 Gradle 文件中使用 Kotlin DSL。请参阅 Jetpack Compose 例子。
显著修复¶
Kanzi Engine¶
修复了导致 Kanzi 在销毁图形上下文后清理 GPU 资源的问题。(RENDERING-185)
修复了在 GPU 驱动程序仅支持 GLES 2.0 和 GL_EXT_draw_instanced 扩展时导致 Kanzi 记录
GL_INVALID_OPERATION警告的问题。(RENDERING-264)修复了当 GPU 驱动程序不支持多重采样抗锯齿时导致 Kanzi 抛出异常的问题。(RENDERING-271)
修复了在运行时修改3D节点的材质导致 Kanzi 运行不必要的通知处理程序的问题。(RENDERING-281)
修复了在极少数情况下,当您导入 3D 资产时导致 Kanzi 终止的问题。(458240)
修复了导致在 Android 上显示泰文文本的 Kanzi 应用程序终止的问题。(INTE-164)
修复了主循环调度器计时器,以使用系统时间作为其开始时间戳,而不是使用 Kanzi 主循环的开始时间戳。您在 Kanzi 主循环帧之外创建的计时器现在获得了有效的开始时间戳。例如,您从 Android UI 线程使用 Kanzi Android framework (droidfw) 创建的计时器。(ANDROID-383)
Kanzi Studio¶
修复了导致 Kanzi Studio 在导入无效的 Kanzi Engine 文件时创建重复日志条目的问题。(ANDROID-266)
修复了限制新项目模板数量的问题。(SDK-8979)
Kanzi Android framework (droidfw)¶
修复了在应用程序挂起时导致 Kanzi 过早触发长按事件的问题。(ANDROID-383)