Kanzi 3.9.4 マイグレーションガイド

このマイグレーションガイドを使用して、Kanzi アプリケーションを Kanzi 3.9.3 から Kanzi 3.9.4 に更新してください。

3DノードのFace to Cameraプロパティの変更

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

FaceToCameraProperty

FaceToCameraIsBillboardingProperty

FaceToCameraCylindralProperty

FaceToCameraModeProperty

bool isFaceToCamera(const Object& object)

FaceToCameraMode getFaceToCameraMode(const Object& object)

void setFaceToCamera(Object& object, bool value)

void setFaceToCameraMode(Object& object, FaceToCameraMode value)

bool isFaceToCameraBillboarding(const Object& object)

void setFaceToCameraIsBillboarding(Object& object, bool value)

bool isFaceToCameraCylindral(const Object& object)

void setFaceToCameraIsCylindral(Object& object, bool value)

Java APIの変更点

これらの Assert 関数では、エラーメッセージ引数の型を文字列を返すコールバックに変更しました。これにより、アサーションを渡す際の冗長な文字列の割り当てを防ぎます。

  • True

  • NotNull

  • Null

例えば、Assert.True 呼び出しが変更される場合

Assert.True(isValid(), "Error message");

終点

Assert.True(isValid(), () -> "Error message");

テキストと2Dジオメトリレンダリングの変更。

Kanzi は、テキストおよびすべての2Dジオメトリをメインメモリからレンダリングする代わりに、仮想バッファオブジェクトとインターリーブされた頂点バッファを使用してレンダリングします。

Geometry は現在 GPUResource から継承しているため、Domain へのアクセスが必要であり、Geometry オブジェクトの作成はリソースマネージャーに登録されます。リソースを節約するために、Geometry オブジェクトを事前に作成するか、必要に応じて作成し、スタックから割り当てるのではなく無期限に保持してください。

Kanzi は依然としてフラットな頂点データを使用したレンダリングをサポートしていますが、Kanzi WebGL ポートがこれをサポートしていないため、これは推奨されません。

この変更により、Geometry インターフェースが簡素化され、クラスのバリエーションが削除されます。この変更により、次のヘッダーが削除されます。

  • kanzi/core.ui/graphics2d/geometry_frame.hpp

  • kanzi/core.ui/graphics2d/geometry_quad.hpp

  • kanzi/core.ui/graphics_backend/gl/geometry_frame.hpp

  • kanzi/core.ui/graphics_backend/gl/geometry_gl.hpp

  • kanzi/core.ui/graphics_backend/gl/geometry_quad.hpp

  • kanzi/core.ui/graphics_backend/nogl/geometry_frame.hpp

  • kanzi/core.ui/graphics_backend/nogl/geometry_quad.hpp

  • kanzi/core.ui/graphics_backend/spansion/geometry_frame.hpp

  • kanzi/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 は、アプリケーションフォーカスがない場合にアクティビティをアクティブにするためにキーボードフォーカスを設定しようとしなくなりました。アクティビティをアクティブにするためにフォーカスを設定するかどうかを制御するには、次のようにします。

    • パラレルアクティビティホスト内のアクティビティで、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 はノードツリーを2回繰り返し処理することがなくなりました。

改善により、Node2D クラスと Node3D クラスに変更が導入されます。

  • onExtract() コールバックを onTransform() にリネームしました。

  • extract() 関数を削除しました。layout() の直後に extract() を呼び出す必要はなくなりました。

  • シーンの再変換を強制するための transform() 関数を追加しました。

プリミティブメッシュ作成関数の変更

Kanzi は、プリミティブメッシュのテッセレーションレベルの設定をサポートするようになりました。この改善により、subdivisions パラメーターが Mesh::createBox および Mesh::createPlane 関数に導入されました。

Kanzi 3.9.3

Kanzi 3.9.4

MeshSharedPtr createBox(Domain* domain, Vector3 size, string_view name, MaterialSharedPtr material = MaterialSharedPtr());

MeshSharedPtr createBox(Domain* domain, Vector3 size, unsigned int subdivisions, string_view name, MaterialSharedPtr material = MaterialSharedPtr());

MeshSharedPtr createPlane(Domain* domain, float width, float height, bool invertU, bool invertV, string_view name, MaterialSharedPtr material = MaterialSharedPtr());

MeshSharedPtr createPlane(Domain* domain, float width, float height, unsigned int subdivisions, bool invertU, bool invertV, string_view name, MaterialSharedPtr material = MaterialSharedPtr());

C++コードビハインドの変更

この変更は、Kanzi バージョン3.9.3で作成したプロジェクトにのみ必要です。

<Project Name>/Application/CMakeLists.txt ファイルで変更

set(CodeBehind_lib_dir "${CMAKE_CURRENT_SOURCE_DIR}/../Tool_project/CodeBehind")

終点

set(CodeBehind_lib_dir "${CMAKE_CURRENT_SOURCE_DIR}/../Tool_project/CodeBehind/<Project Name>")

関連項目

Kanzi 3.9.4 リリースノート

既知の問題