Kanzi 3.9.6 发行说明

新增功能

功能改进

  • 引入了高级颜色混合模式。请参阅 高级颜色混合模式。

    ../../_images/blend-mode-soft-light.png

    源 (Source)

    目标 (destination)

    结果

    ../../_images/advanced-blend-modes-source-color.png ../../_images/advanced-blend-modes-destination.png ../../_images/blend-mode-soft-light-color.png
  • 引入了以下 ARGB 图形格式:

    • GraphicsFormatA8R8G8B8_SNORM

    • GraphicsFormatA8R8G8B8_UINT

    • GraphicsFormatA8R8G8B8_SINT

    • GraphicsFormatA16R16G16B16_UINT

    • GraphicsFormatA16R16G16B16_SINT

    • GraphicsFormatA16R16G16B16_UNORM

    • GraphicsFormatA16R16G16B16_SNORM

    • GraphicsFormatA16R16G16B16_SFLOAT

    • GraphicsFormatA32R32G32B32_UINT

    • GraphicsFormatA32R32G32B32_SINT

    • GraphicsFormatA32R32G32B32_SFLOAT

  • 您现在可以为由 NodeEffectRenderer2D 生成的渲染目标定义表面格式、过滤和清除颜色。

  • Kanzi Java API 改进:

    • 在 KanziObject 类中添加了 tryCreateObjectRef(Class<>) 函数,该函数尝试为任何 KanziObject 创建一个拥有的 ObjectRef。您可以使用它来避免在对象过时时抛出 StaleObjectException。请参阅 管理实例生命周期。

    • 在 TextResource 类函数 create(Domain domain, String name, String value) 中添加了 value 参数,使您能够创建具有值的 TextResource。

    • 添加了 ColorWorkflow 枚举,其中包含 Legacy 和 Linear 值,以表示使用中的颜色工作流。 在 Domain 类中添加了 getColorWorkflow() 函数,该函数返回当前的 ColorWokflow。

    • 在 BitmapImage 类中添加了 premultiplyAlpha() 函数,该函数将颜色和亮度通道与 alpha 通道预乘。

    • 修改了 ResourceManager.LoadTask 和 ResourceManager.ProtocolHandler.Result 类型以使用强大的 ObjectRef 实例来跟踪资源。请参阅 Kanzi Java API 自定义 Resource Manager 协议的更改。。

    • 在 ResourceManager 类中添加了可以控制 Resource Manager 内存策略的 setDefaultMemoryStrategy(MemoryStrategy) 和 getDefaultMemoryStrategy() 函数。

    • 在 Node2D 类中添加了 getWorldTransform() 和 transform() 函数。

    • 添加了 TaskDispatcher 类,使您能够从其他线程向 Kanzi UI 线程分派任务。

    • 您现在可以从 Java 访问 ResourceDictionary 类。

    • 在 Node 类中添加了这些方法以访问节点的资源字典:

      • Node.getResourceDictionary()

      • Node.acquireResourceDictionary()

      • Node.setResourceDictionary(ResourceDictionary)

      • Node.setResourceDictionary(ResourceDictionary)

      • Node.notifyResourceDictionaryModified()

  • Kanzi Android framework (droidfw) 改进:

    • Kanzi 视图现在使用独立的输入和焦点管理。这意味着:

      • 在一个视图中的输入不会直接影响另一个视图。

      • 焦点覆盖层,例如模态,限制在其所属视图内。

      This improvement changed the structure of the node tree in a Kanzi view. See 从 Kanzi Android framework (droidfw) 访问 Kanzi Java API 的更改。 and 访问 Kanzi Java 和 Kotlin API.

    • 通过以下方式提高启动性能:

      • 将 Kanzi Android framework (droidfw) 应用程序的默认 DeploymentQueueBudget 更改为每帧 5 毫秒。请参阅 DeploymentQueueBudget。

      • 改进每帧 DeploymentQueueBudget 的利用率以加载依赖项。

    • 当其引用计数降至零时,如果您不手动关闭,KanziRuntime.Reference 现在会自动释放其负载。

  • Kanzi Studio 现在显示更多详细信息,包括 Java 插件中运行时错误的调用栈。

  • 在 ActivityCodeBehind 类中引入了用于活动状态更改的回调方法。这些方法使得在活动状态更改时更容易定义代码隐藏的行为。

    更新的活动代码后台模板用新方法替换了 registerStatusChangeOverride 的使用。

  • 添加了 Data Context 属性作为 Data-Driven Exclusive Activity Host 的常用属性。

  • 在 Activity Browser 中,您现在可以:

    • 直接在其他 Activity Hosts 下添加 Activity Hosts。

    • 在一个 Activity 下添加多个 Activity Host。

    • 删除 Data-Driven Exclusive Activity Host 的手动添加活动。

    • 通过点击 自动布局 切换项目的自动布局。

    • 通过在 Activity Browser 中拖动该项目来更改活动或活动主机的顺序和父级。请参阅 更改节点的顺序 和 更改节点的父级。

      ../../_images/ab-reordering.gif ../../_images/ab-reparenting.gif
  • 您现在可以在 Kanzi Studio 中使用 Viewport 3D 节点。Viewport 3D 节点使您能够在 3D 场景中渲染 2D 节点。请参阅 使用 Viewport 3D 节点。

    ../../_images/preview-viewport-3d-complete.gif
  • 您现在可以使用 Write Log 操作来打印属性和消息参数值。请参阅 使用 Write Log 操作。

    ../../_images/node-components-write-log-action-advanced-formatting.png ../../_images/log-window-advanced-formatting.png
  • 在 Shadow Effect 2D 效果中,引入了 Override Shadow Offset 属性,使您能够设置阴影相对于对象在 x 和 y 轴上的偏移量。请参阅 使用 Shadow Effect 2D 效果。

    ../../_images/override-shadow-offset.png ../../_images/shadow-offset.gif
  • 在 ShaderProgram::CreateInfo 类中引入了这些函数,使您更容易在应用程序代码中使用您创建的着色器的统一变量:

    • void addUniformAndBinding(AbstractPropertyType propertyType) 添加一个 uniform 和该 uniform 的默认渲染值绑定。

    • void addUniformAndBinding(AbstractPropertyType propertyType, ShaderProgram::UniformTransformation transformation) 添加一个 uniform 和该 uniform 的默认渲染值绑定,使用您指定的变换函数。

    • void addFixedUniform(string_view name) 将统一变量和默认绑定添加到具有直通变换的固定统一函数。

    • void addFixedUniform(string_view name, ShaderProgram::UniformTransformation transformation) 添加一个统一变量和默认绑定到一个固定的统一函数,并使用您指定的变换函数。

  • 您现在可以在 OpenGL 目标上使用 SPIR-V 二进制着色器。请参阅 使用二进制着色器。

  • 引入了 getCameraNormalMatrix() 统一绑定函数,该函数获取将对象法线转换为视图空间的矩阵。请参阅 getCameraNormalMatrix。

  • 您现在可以使用 Kanzi Engine API 从现有的 OpenGL 缓冲区句柄创建一个 Mesh,并从现有的 Mesh 查询这些句柄。请参阅 从本机句柄创建网格。

  • 在 Mesh 类中,引入了对实例化的支持:

    • 在 Mesh::CreateInfo 中,您现在可以定义实例缓冲区。

    • 在 MeshVertexAttribute 中,您现在可以设置属性是每顶点还是每实例。

  • Kanzi FreeType 和 iType 字体引擎现在支持老挝语、高棉语、缅甸语和泰语的自动换行。Kanzi 不再需要泰语词典来支持 iType 字体引擎的自动换行,但仍然支持它。请参阅 使用 iType 字体引擎自定义泰文文本中的自动换行功能。 和 字体引擎字典。

  • 添加了用于截断不适合 Text Block 和 Text Box 节点可用空间的文本的选项。您现在可以设置是否要截断文本:

    • 在开头、中间或结尾

      ../../_images/text-block-truncation-direction.gif
    • 逐字符或按整个单词

      ../../_images/text-block-truncation.gif

    请参阅 包装和截断文本 和 在 Text Box 中设置截断。。

  • 在多项目设置中,您现在可以在引用的项目之间共享在 Screen 节点中创建的 Kanzi 资源 ID。

  • 添加到 On Property Change 触发器的 Ignore Initial Value 属性。使用此属性仅在监控的属性值在触发器已附加后发生变化时触发。

  • 在 Factory Content Slider 中,您现在可以设置旋钮和轨道的样式和大小。请参阅 使用来自 Factory Content 的滑块。。

    ../../_images/fc-slider-color-properties.png ../../_images/fc-slider-in-preview.png
  • 您现在可以在从命令行运行 Kanzi Studio 时使用多行参数。请参阅 使用脚本设置属性值。

更改

  • Kanzi 现在根据 evdev 规范处理 SYN_DROPPED 事件。

  • 为了提高构建时间和运行时性能,将 kanzi::variant 从 boost::variant 更改为 boost::variant2。要迁移您的 Kanzi 应用程序,请参阅 对 kanzi::variant 的更改。

  • 为了提高构建时间,移除了不必要的包含文件,现在使用更多的前向声明。要迁移您的 Kanzi 应用程序,请参阅 对头文件的更改。

  • 从 Kanzi 工作区中移除了 Cotire CMake 模块。要迁移您的应用程序,请参阅 对 CMake 配置文件的更改。

  • 添加了对 Python 3 的支持,以使用 SCons 构建 Kanzi 应用程序。

  • 在 Android 上的 Kanzi application framework (appfw) 中:

  • Kanzi Engine 在 Android 平台上现在使用 std::strtof、std::snprintf 和 std::to_string,而不是 KZ_USE_C99_SNPRINTF、KZ_EMULATE_STRTOF 和 KZ_EMULATE_TO_STRING。

  • 将 glslang 更新到版本 12.0.0。

  • 更新了 Android、Linux、QNX 和 Windows 平台包以使用:

    • Zlib 1.2.13

    • FreeType 2.12.1

      该版本的库在平滑光栅化器性能上提高了超过 10%。在某些情况下,这些更改会对文本渲染引入细微差异。

    • HarfBuzz 5.3.1

      该版本的库引入了文本整形的更改,在某些情况下可能会导致文本布局出现细微差异。

  • 更新的 Integrity 平台包以使用:

    • Zlib 1.2.13

    • FreeType 2.12.1

  • 对于非 Android 平台,不推荐使用 KzsResourceFile 类。请使用 ReadOnlyDiskFile 类提供的功能。

  • Node 现在知道其附加的 Screen 节点,并且可以从该 Screen 获取 FocusManager 和 InputManager 实例。请参阅 对焦点和输入管理的更改。

  • 弃用 kzuEngine 结构,并将其功能移至 Application、Node、ResourceManager 和 Screen 类。请参阅 对 KzuEngine 的更改。

  • 将 kzb 文件格式版本更改为 23.0。

文档 (Documentation)

显著修复

ID

描述 (Description)

区域

300598

修复了在使用具有正交投影和绝对坐标的相机时导致 3D 节点中点击事件注册不正确的问题。

Kanzi Engine

324230

修复了在 Kanzi 中导致 iType 和 FreeType 字体引擎之间多行双向文本渲染不一致的问题。

Kanzi Engine

334589

修复了当您以根数据上下文的子对象为目标时,数据上下文绑定无法正常工作的问题。例如,[DataContext] = {DataContext.subcontext}。

Kanzi Engine

395640

Kanzi 不再在合成 2D 节点时避免清除帧缓冲区。这提高了平铺渲染 GPU 的性能,并修复了在为该节点启用缓存时,Kanzi 在 Text Block 2D 节点的文本中剪掉字符一部分的问题。请参阅 画笔渲染的更改。

Kanzi Engine

428214

修复了使用范围属性类型的绑定中的性能问题。

Kanzi Engine

428303

修复了当 Text Box 节点仅显示溢出字符时导致 Preview 终止的问题。

Kanzi Engine

431183

修复了取消应用 Apply Property Action 时未正确恢复 Active Activity Index 属性值的问题。

Kanzi Engine

433346

修复了当您将 2D 效果应用于 Viewport 2D 节点的上级时导致 3D 内容渲染出现小偏移的问题。

Kanzi Engine

433605

修复了当通过取消更高优先级的输入操控器触发点击识别时,导致 Click 触发器不包含任何消息参数的问题。

Kanzi Engine

436687

在绑定表达式中,使用 acquire 绑定函数获取的文本资源转换为字符串现在可以正常工作。

Kanzi Engine

437894

修复了触摸输入处理中的问题,该问题导致 Kanzi:

  • 当键焦点节点更改时,错误地取消触摸输入处理。

  • 有时,当触摸输入不再到达正在处理输入的节点时,无法取消触摸输入处理。

Kanzi Engine

438534

当处理具有依赖关系的资源时,Kanzi 现在以一种方式处理 DeploymentQueueBudget,使得如果 DeploymentQueueBudget 允许,这些资源可以与其依赖关系在同一帧中部署。

Kanzi Engine

441268

当使用32位网格索引缓冲区时,Performance HUD 现在报告正确的GPU内存使用情况。

Kanzi Engine

442127

修复了导致包含叠加范围的 Kanzi Android 应用程序终止的问题。

Kanzi Engine

442298

修复了当您将 Shadow Color 属性的值设置为非黑色半透明颜色时导致 Shadow Effect 2D 效果渲染不正确的问题。

Kanzi Engine

442592

修复了在 Data-Driven Exclusive Activity Host 下的数据源更改未立即反映在活动的 Activity 中的问题。

Kanzi Engine

444596

修复了未显式关闭的 ObjectRef 实例导致内存泄露的问题。

Kanzi Java API

416869

修复了导致 Delete Unreferenced Items 窗口显示自动生成的立方体贴图纹理图像的问题,即使它们已被您的项目使用。

Kanzi Studio

420138

修复了在组合中打开 3D 活动或活动主机预设时阻止删除 Activity Browser 中根节点的问题。

Kanzi Studio

420151

修复了在组合中打开 3D 活动或活动主机预设时,将 <Isolation preview model placeholder> 显示为 Activity Browser 中根节点名称的问题。

Kanzi Studio

440396

修复了导致样式无法与除触发器以外的节点组件一起使用的问题。

Kanzi Studio

441717

修复了在重命名 Screen 节点后阻止 Activity Browser 添加根活动主机的问题。

Kanzi Studio

442274

修复了在 Activity Browser 中无法重命名 Activity Hosts 的问题。

Kanzi Studio

444700

修复了在 Kanzi Studio 中添加引用项目时损坏项目的 CMakeLists.txt 的问题。

Kanzi Studio

445492

Kanzi Studio Preview 现在使用与您为 Preview 设置的构建配置相同的 JAR Kanzi Engine 插件。

Kanzi Studio

420292

修复了 Factory Content Slider 中导致滑块轨道渲染延迟一帧的问题。

Kanzi framework SDK

421869

修复了 Android 设备上无法运行 Node2D 插件示例的问题。

Kanzi framework SDK

另请参阅

Kanzi 3.9.6 迁移指南

已知问题