Kanzi 3.9.4 迁移指南¶
使用此迁移指南将 Kanzi 应用程序从 Kanzi 3.9.3 更新到 Kanzi 3.9.4。
对 3D 节点的面向相机属性的更改。¶
将 Face to Camera、Face to Camera is Billboarding 和 Face to Camera Cylindrical 布尔属性替换为 Face to Camera Mode 枚举属性。
此表列出了 Constraints 类中属性和方法的更改:
Kanzi 3.9.3 |
Kanzi 3.9.4 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java API 中的更改¶
在这些 Assert 函数中,将错误消息参数的类型更改为返回字符串的回调。这可以防止为传递断言而进行冗余的字符串分配:
TrueNotNullNull
例如,Assert.True 调用从
Assert.True(isValid(), "Error message");
至 (To)
Assert.True(isValid(), () -> "Error message");
对文本和2D几何渲染的更改¶
Kanzi 现在使用虚拟缓冲对象和交错顶点缓冲区渲染文本和所有2D几何图形,而不是从主内存渲染。
Geometry 现在继承自 GPUResource,这意味着它需要访问 Domain,并且创建 Geometry 对象会注册到资源管理器中。为了节省资源,可以预先创建 Geometry 对象,或者根据需要创建并无限期保留,而不是从堆栈中分配。
Kanzi 仍然支持使用平面顶点数据进行渲染,但不推荐这样做,因为 Kanzi WebGL 端口不支持此功能。
此更改简化了 Geometry 接口并移除了该类的变体。此更改移除了以下头文件:
kanzi/core.ui/graphics2d/geometry_frame.hppkanzi/core.ui/graphics2d/geometry_quad.hppkanzi/core.ui/graphics_backend/gl/geometry_frame.hppkanzi/core.ui/graphics_backend/gl/geometry_gl.hppkanzi/core.ui/graphics_backend/gl/geometry_quad.hppkanzi/core.ui/graphics_backend/nogl/geometry_frame.hppkanzi/core.ui/graphics_backend/nogl/geometry_quad.hppkanzi/core.ui/graphics_backend/spansion/geometry_frame.hppkanzi/core.ui/graphics_backend/spansion/geometry_quad.hpp
请改用 kanzi/core.ui/graphics2d/geometry.hpp。
Kanzi Android framework (droidfw) 中的更改¶
从
KanziSurfaceView和KanziTextureView视图中移除了handleVisibilityChanged方法。Kanzi Android framework (droidfw) 现在跟踪每个连接视图的有效用户可见性,并跳过隐藏视图的渲染。请参阅 处理视图的用户可见性。在
KanziViewAdapter.handleSurfaceChanged方法中添加了一个必需的Surface参数。Kanzi 3.9.3
Kanzi 3.9.4
void handleSurfaceChanged(int width, int height)void handleSurfaceChanged(Surface surface, int width, int height)
对焦点处理的更改¶
Kanzi 不再尝试在没有应用程序焦点时将键盘焦点设置到激活的 Activity。要控制是否将焦点设置到激活的 Activity:
在 Parallel Activity Host 中的 Activity 中设置 Focus On Activation (
ParallelActivityHostConcept::FocusOnActivationProperty) 属性。在独占活动主机中设置 Focus On Activating Activity (
ExclusiveActivityHostConcept::FocusOnActivatingActivityProperty) 属性。
弃用这些函数:
FocusManager::isFocusScope()和FocusManager::isFocusFence()。请改用
FocusManager::getFocusScopeType()。FocusManager::setFocusScope()和FocusManager::setFocusFence()。请改用
FocusManager::setFocusScopeType()。
移除显式提取过程¶
Kanzi 现在在布局过程中自动执行以前版本中由显式提取过程处理的功能。这意味着 Kanzi 不再需要遍历节点树两次。
改进在 Node2D 和 Node3D 类中引入了更改:
将
onExtract()回调重命名为onTransform()。已移除
extract()函数。紧接在layout()之后调用extract()不再需要。添加了
transform()函数以强制重新转换场景。
对原始网格创建函数的更改。¶
Kanzi 现在支持设置基本网格的细分级别。此改进在 Mesh::createBox 和 Mesh::createPlane 函数中引入了 subdivisions 参数。
Kanzi 3.9.3 |
Kanzi 3.9.4 |
|---|---|
|
|
|
|
对 C++ Code Behind 的更改¶
此更改仅适用于您使用 Kanzi 版本 3.9.3 创建的项目。
在 <Project Name>/Application/CMakeLists.txt 文件中更改
set(CodeBehind_lib_dir "${CMAKE_CURRENT_SOURCE_DIR}/../Tool_project/CodeBehind")
至 (To)
set(CodeBehind_lib_dir "${CMAKE_CURRENT_SOURCE_DIR}/../Tool_project/CodeBehind/<Project Name>")