Kanzi 3.9.6 发行说明¶
新增功能¶
功能改进¶
引入了高级颜色混合模式。请参阅 高级颜色混合模式。
源 (Source)
目标 (destination)
结果
引入了以下 ARGB 图形格式:
GraphicsFormatA8R8G8B8_SNORMGraphicsFormatA8R8G8B8_UINTGraphicsFormatA8R8G8B8_SINTGraphicsFormatA16R16G16B16_UINTGraphicsFormatA16R16G16B16_SINTGraphicsFormatA16R16G16B16_UNORMGraphicsFormatA16R16G16B16_SNORMGraphicsFormatA16R16G16B16_SFLOATGraphicsFormatA32R32G32B32_UINTGraphicsFormatA32R32G32B32_SINTGraphicsFormatA32R32G32B32_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 中,您现在可以:
您现在可以在 Kanzi Studio 中使用 Viewport 3D 节点。Viewport 3D 节点使您能够在 3D 场景中渲染 2D 节点。请参阅 使用 Viewport 3D 节点。
您现在可以使用 Write Log 操作来打印属性和消息参数值。请参阅 使用 Write Log 操作。
在 Shadow Effect 2D 效果中,引入了 Override Shadow Offset 属性,使您能够设置阴影相对于对象在 x 和 y 轴上的偏移量。请参阅 使用 Shadow Effect 2D 效果。
在
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 节点可用空间的文本的选项。您现在可以设置是否要截断文本:
在开头、中间或结尾
逐字符或按整个单词
请参阅 包装和截断文本 和 在 Text Box 中设置截断。。
在多项目设置中,您现在可以在引用的项目之间共享在 Screen 节点中创建的 Kanzi 资源 ID。
添加到 On Property Change 触发器的 Ignore Initial Value 属性。使用此属性仅在监控的属性值在触发器已附加后发生变化时触发。
在 Factory Content Slider 中,您现在可以设置旋钮和轨道的样式和大小。请参阅 使用来自 Factory Content 的滑块。。
您现在可以在从命令行运行 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) 中:
更改了
KanziView.isActiveView()方法以使其对扩展类可用。将
KanziNativeLibrary中与输入相关的值重命名为与其本地对应项匹配。请参阅 对 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)¶
添加了一个示例,展示如何使用 Kanzi Android framework (droidfw) 导入 Android 资源。请参阅 Kanzi 中的 Android 资源。。
添加了一个示例,展示如何在 Kanzi 应用程序中混合使用 Android 和 Kanzi UI。请参阅 混合使用 Kanzi 和 Android UI。
添加了有关如何使用 Scroll View 触发器的说明。请参阅 对 Scroll View 滚动作出反应。。
改进了有关激活 Data-Driven Exclusive Activity Host 创建的活动的不同方法的说明。请参阅 数据驱动独占活动主机。
添加了一个主题,涵盖如何使用 Activity Browser。请参阅 使用 Activity Browser。
添加了有关如何在 INTEGRITY 上启用内存映射以加载 kzb 文件的说明。请参阅 在 INTEGRITY 上进行内存映射文件。。
修改这些教程,以便您可以在目标设备上与已完成的教程项目进行交互:
显著修复¶
ID |
描述 (Description) |
区域 |
|---|---|---|
300598 |
修复了在使用具有正交投影和绝对坐标的相机时导致 3D 节点中点击事件注册不正确的问题。 |
Kanzi Engine |
324230 |
修复了在 Kanzi 中导致 iType 和 FreeType 字体引擎之间多行双向文本渲染不一致的问题。 |
Kanzi Engine |
334589 |
修复了当您以根数据上下文的子对象为目标时,数据上下文绑定无法正常工作的问题。例如, |
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 |
在绑定表达式中,使用 |
Kanzi Engine |
437894 |
修复了触摸输入处理中的问题,该问题导致 Kanzi:
|
Kanzi Engine |
438534 |
当处理具有依赖关系的资源时,Kanzi 现在以一种方式处理 |
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 |
修复了未显式关闭的 |
Kanzi Java API |
416869 |
修复了导致 Delete Unreferenced Items 窗口显示自动生成的立方体贴图纹理图像的问题,即使它们已被您的项目使用。 |
Kanzi Studio |
420138 |
修复了在组合中打开 3D 活动或活动主机预设时阻止删除 Activity Browser 中根节点的问题。 |
Kanzi Studio |
420151 |
修复了在组合中打开 3D 活动或活动主机预设时,将 |
Kanzi Studio |
440396 |
修复了导致样式无法与除触发器以外的节点组件一起使用的问题。 |
Kanzi Studio |
441717 |
修复了在重命名 Screen 节点后阻止 Activity Browser 添加根活动主机的问题。 |
Kanzi Studio |
442274 |
修复了在 Activity Browser 中无法重命名 Activity Hosts 的问题。 |
Kanzi Studio |
444700 |
修复了在 Kanzi Studio 中添加引用项目时损坏项目的 |
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 |


切换项目的自动布局。