Kanzi 3.6.4 发行说明

新增功能

  • Kanzi Studio 解决方案

    更新了 Kanzi Studio 解决方案的功能和工作流程:包括其他项目的项目。Kanzi Studio 现在从 Kanzi Studio 解决方案中加载项目,并在单个 Kanzi Studio 窗口中的独立项目选项卡中显示。您可以配置如何访问这些项目中的预设和资源。请参阅 教程:将 Kanzi Studio 项目合并为一个 Kanzi 应用程序。 和 将 Kanzi Studio 项目合并到 Kanzi 应用程序中。。

    ../../_images/resources-make-public.png
  • ASTC

    现在,您可以通过使用 ASTC 算法压缩纹理来减小 kzb 文件的大小并提高 Kanzi 应用程序的启动时间。ASTC 提供了比 Kanzi 中可用的其他压缩格式更好的控制和压缩效果。请参阅 压缩纹理。

    ../../_images/astc-compression-speed.png

功能改进

  • 现在,您可以测量在您的 Kanzi 应用程序中资源的加载和部署时间。请参阅 测量资源的加载和部署时间。

  • 对渲染的改进内容:

    • Composition Target Render Pass 现在具有 Filter Mode 属性,您可以使用它来设置自动生成的合成目标的过滤模式。默认情况下,Composition Target Render Pass 使用线性过滤,但您可以使用此属性设置最近邻过滤。请参阅 将内容渲染到合成目标。

      ../../_images/filter-mode.png
    • 您现在可以设置一个 Composition Target Render Pass,以在渲染后自动解析多重采样和 mipmaps。通常,Kanzi 在另一个渲染通道引用结果合成目标时解析它们,但如果您手动分配合成目标,请使用 Resolve Immediately 属性以避免仅仅为了引用合成目标渲染通道并执行解析而添加渲染通道。请参阅 为 Render Target Texture 创建 mipmap。

      ../../_images/resolve-immediately-enabled.png
    • Kanzi 现在会自动为 2D 和 3D 组合目标创建模板缓冲区。2D 组合不再自动清除深度或模板缓冲区,因此由 Node2D 自动组合的场景中的渲染通道必须清除这些缓冲区。默认情况下,渲染通道总是清除深度。这使得 Composition Target Render Pass 在渲染通道使用它们时自动创建模板缓冲区。

    • Cubemaps 现在启用了无缝过滤。这意味着当您使用线性过滤时,Cubemaps 接缝处的纹素会进行混合。要使用此功能,您的目标硬件必须支持此功能。

  • 添加了 Move Focus 和 Set Focus 操作,使您能够在 Kanzi 应用程序中无需使用 JavaScript 脚本即可控制焦点。请参阅 使用焦点。

    ../../_images/add-set-focus-action.png
  • 在 Text Block 节点中添加了 Remove Side Bearings 属性。使用 Remove Side Bearings 属性可以将左对齐文本的最左侧字符和右对齐文本的最右侧字符精确地放置在文本块的边界内。

    ../../_images/remove-side-bearings.gif
  • 自定义 Resource Manager 协议现在可以返回空资源。例如,这使您能够显示现有的占位符图像,直到新资源加载完成,然后在资源成功加载时用资源 URI 替换占位符图像。

  • 您现在可以嵌套 Grid List Box、Trajectory List Box 3D 和 Scroll View 节点,每个节点都可以设置为在不同的轴上滚动。请参阅 嵌套 Grid List Box 节点 和 嵌套 Trajectory List Box 3D 节点。

  • 已从 Kanzi 模板类中移除 dllimports,这意味着您现在可以在 Kanzi Engine 插件中使用 ListBoxConceptImpl。

  • Kanzi Engine DLL 文件现在包含 PDB 文件,以帮助您调试 Kanzi 应用程序。

  • 如果在 kzb 文件中找不到您引用的属性类型,Kanzi Engine 现在会抛出异常。

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

    • 您现在可以通过一条命令更新某一工程或整个 Kanzi Studio 解决方案中的所有数据源。请参阅 更新数据源。

      ../../_images/update-data-sources-in-project.png
    • 您现在可以通过一条命令更新某一工程中的所有 Kanzi Engine 插件或整个 Kanzi Studio 解决方案。请参阅 在项目中更新 Kanzi Engine 插件。

      ../../_images/update-kanzi-engine-plugins-in-project.png
    • 改进了 Kanzi Studio 命令行命令,以便您可以在 Kanzi Studio 项目中自动化和简化工作流程。例如,您现在可以使用脚本创建和更新数据源和 Kanzi Engine 插件。请参阅 自动化 Kanzi Studio 任务。

    • 您现在可以在 Viewport 2D 节点中使用 Prefab Placeholder 节点实例化 Scene 预设,包括从使用资源 ID 的引用项目中。

    • 在 Library 中,当您在存储在文件中的资源上运行 Show Details 命令时,您现在可以看到资源文件的路径。

      ../../_images/show-details.png ../../_images/item-details.png
    • 在 Edit > User Preferences > Advanced 中,您现在可以设置要让 Kanzi Studio 并行压缩的图像数量。请参阅 压缩纹理。

      ../../_images/images-to-compress-in-parallel.png
    • 在 Edit > User Preferences 中,您现在可以设置 Kanzi Studio,以询问您在打开 Kanzi 解决方案项目时是否要加载引用的项目。

      ../../_images/ask-before-loading-referenced-projects.png
    • 当您从 Viewport 节点创建一个 Render Target 时,Kanzi 不再在 Preview 中绘制 Render Target 的调试对象。

    • 您现在可以通过选择 Project > Delete Unreferenced Items 来删除 Library 中未使用的所有资源。请参阅 删除项目未使用的资源和预设。

      ../../_images/delete-unreferenced-items-from-project.png
    • 当您导入一个名称已存在的图像时,Kanzi Studio 现在提供了更多选项,以便您可以选择是否要覆盖该单个图像、覆盖所有同名图像、将所有同名图像添加为新图像,或取消导入。

    • 将 Preview 和缩略图渲染过程分开。这样,当缩略图渲染终止时,Preview 可以继续不间断地工作。

    • 您现在可以使用 State Manager 更改节点的标签。

    • 您现在可以在 Preview 中使用 Restart 按钮重新启动 Preview。

      ../../_images/preview-restart-button-gray.png
    • 在 Page 和 Page Host 节点的导航操作中,您现在可以使用 Immediate 属性来实现无动画的即时导航过渡。

      ../../_images/immediate-page-navigation.png
    • 已移除 clearFocus() 脚本功能的功能。一个有效的应用程序必须有一个具有焦点的节点。

    • 当节点被附加时,您现在可以将焦点设置到该节点。在节点的 onAttached() 重写中,您可以调用 trySetActiveFocus() 函数来将焦点设置到该节点。

    • Kanzi Studio 现在在 Library 中用红色标记那些在顶点和片段着色器中具有不同精度的变量的材质类型。

      ../../_images/shader-precision-mismatch.png

更改

  • 现在,当您使用 file:// 协议加载纹理时,为了提高视觉质量,Kanzi 将纹理设置为使用 Linear,而不是 Nearest 过滤。

  • 添加了 Linux CPP11 配置。

  • 将 Kanzi Engine 使用的 LibPNG 库更新到了版本 1.6.35。

Documentation

  • 添加了一个教程,帮助您学习如何在您的 Kanzi 应用程序中添加平移、捏合、多次点击和长按手势。请参阅 教程:平移、缩放、轻触。

  • 添加了一个教程,帮助您学习如何在您的 Kanzi 应用程序中添加拖放功能。请参阅 教程:拖放。

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

  • 改进了相应教程,帮助您学习如何使用 Page 节点创建应用程序流程,以展示如何使用 Kanzi Engine API 创建 Page 导航。

  • 更新了有关如何使用绑定包含新程序和设计的话题。请参阅 使用绑定。

    ../../_images/bindings-color-wheel.gif
  • 完善了如何使用 Kanzi State Manager 的说明,以包括:

  • 完善了有关如何在 Kanzi Studio 中使用 UV 的说明。请参阅 使用带有 UV 的 3D 模型。

  • 该文档现在涵盖了使用 RenderOpacity 着色器统一变量。请参阅 着色器 uniform。

  • 添加了对可用于 Kanzi Studio 项目的设置的描述。请参阅 配置 Kanzi Studio 项目。

  • 添加了有关如何在 Kanzi Studio 中以触发器或操作的形式显示 Kanzi Engine 插件消息类型的说明。请参阅 创建自定义消息类型。

  • 添加了有关如何为 Render Target Texture 创建 mipmaps 的说明。请参阅 为 Render Target Texture 创建 mipmap。

  • 添加了有关如何设置 Kanzi 用于绘制 Performance HUD 的颜色的说明。请参阅 在 Performance HUD 中显示性能测量图表。。

    ../../_images/main-loop-rendering-and-layout-in-hud.png
  • 添加了有关在绑定表达式中使用 Srt2D() 和 Srt3D() 常量的信息。

    请参阅 Bindings expressions 参考。

  • 更新了文档的中文翻译,以纳入使用 Kanzi 3.6.3 发布的内容。

修复

ID

描述 (Description)

区域

8833

当您将 Composition Target Render Pass 渲染到 Render Target Texture 时,将 Render Target Texture 的 Width 和 Height 设置为 Automatic 现在可以正常工作。

Kanzi Engine

8781

修复了 kzcScreenCaptureToImage 以始终捕获整个屏幕。

Kanzi Engine

8615

修复了 ScrollViewConceptImpl::setScrollBoundsY 和 ScrollViewConceptImpl::setScrollBoundsX 函数,这些函数在 Scroll View 中设置垂直和水平滚动边界。

Kanzi Engine

8559

修复了阻止 ProfilerRegistry<AbstractProfiler> 与 DLL 配置一起工作的问题。

Kanzi Engine

8529

修复了使用 Vivante 帧缓冲区的设备有时会导致手指离开触摸屏后,屏幕上多个指针保持按压状态的问题。

Kanzi Engine

8466

修复了当您将 Color Write Mode 属性设置为 Alpha 时导致 Pipeline State Render Pass 产生错误结果的问题。

Kanzi Engine

8456

NavigationParent 消息现在可以与 Page Host 节点一起使用。

Kanzi Engine

8444

修复了某些情况下无法更改 Material 属性值的问题。

Kanzi Engine

7898

kanzi/core.ui/graphics3d/mesh_create_info.hpp 头文件现在包含在 kanzi.hpp 中。

Kanzi Engine

基于静态代码分析结果,修复了包括 Visual Studio 2017、Clang 和 Coverity 中存在的多个问题。

Kanzi Engine

8900

将 application.cfg 文件放在 Application/bin 目录中不再阻止您更新数据源。

Kanzi Studio

8870,8055

您现在可以从 Assets 窗口中拖动多个项目。

Kanzi Studio

8840

修复了在 State Tools 中自动保存更改的问题。

Kanzi Studio

8813

将 Blend Mode 设置为 Alpha: Automatic 现在解析为 Alpha: Mixed 而不是 Alpha: Non-premultiplied。

Kanzi Studio

8752,8547,8541,8449

改进了 Kanzi Studio 和 Preview 的性能和稳定性。

Kanzi Studio

8687, 8481

您现在可以在 Viewport 2D 节点中创建一个 Prefab View 3D 节点。

Kanzi Studio

8649

在 Find Project Item 对话框中,当您选择多个找到的项目时,Kanzi Studio 现在可以在 Node Tree 和 Library 中正确选择这些项目。

Kanzi Studio

8648

在 Dictionaries 窗口中,搜索现在还会返回您刚刚添加到资源字典中的那些资源。

Kanzi Studio

8610

当您在二进制着色器上运行 Delete Unreferenced Items 命令时,Kanzi Studio 不再删除二进制着色器。

Kanzi Studio

8573

您现在可以使用 Kanzi Studio 属性编辑器 GenericResourceFileSelector 和 DefaultProjectObjectSelector 来处理在 Kanzi Engine 插件中声明的属性类型。

Kanzi Studio

8548

修复了阻止 Kanzi Studio 使用 ETC2 算法压缩某些图像的问题。

Kanzi Studio

8498

Prepare Project for Release 命令现在可以很好地与组合选项卡配合使用。

Kanzi Studio

8480

修复了无法使用 kzb URL 实例化 Scene 节点预设的问题。

Kanzi Studio

8471

修复了用于关闭合成选项卡的默认键盘快捷键。

Kanzi Studio

8017

当您在组合选项卡中打开预设时,Node Tree 窗口默认情况下现在仅显示该预设中的节点。

Kanzi Studio

另请参阅

Kanzi 3.6.4 迁移指南

已知问题