Kanzi 3.9.6 リリースノート

新機能 (New features)

機能改善

  • 高度なカラーブレンディングモードが導入されました。高度なカラーブレンディングモード を参照してください。

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

    ソース (Source)

    デスティネーション

    結果

    ../../_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) に、値を持つ TextResource を作成できる value パラメータを追加しました。

    • ColorWorkflow 列挙型に Legacy と Linear の値を追加し、使用中のカラーワークフローを表現しました。Domain クラスに現在の ColorWokflow を返す getColorWorkflow() 関数を追加しました。

    • BitmapImage クラスに、アルファチャンネルを色チャンネルと輝度チャンネルにプリマルチプライ処理する premultiplyAlpha() 関数を追加しました。

    • ResourceManager.LoadTask と ResourceManager.ProtocolHandler.Result のタイプを変更し、リソースを追跡するために強力な ObjectRef インスタンスを使用するようにしました。Kanzi Java API カスタムリソースマネージャープロトコルの変更点 を参照してください。

    • ResourceManager クラスに、リソースマネージャーのメモリ戦略を制御できる setDefaultMemoryStrategy(MemoryStrategy) および getDefaultMemoryStrategy() 関数を追加しました。

    • Node2D クラスに getWorldTransform() および transform() 関数を追加しました。

    • TaskDispatcher クラスを追加し、他のスレッドから Kanzi UI スレッドにタスクをディスパッチできるようにしました。

    • ResourceDictionary クラスにJavaからアクセスできるようになりました。

    • 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 にアクセスする.

    • 起動パフォーマンスを向上させるために、

      • デフォルトの DeploymentQueueBudget を Kanzi Android framework (droidfw) アプリケーション用に1フレームあたり5ミリ秒に変更します。DeploymentQueueBudget を参照してください。

      • 依存関係のロードのために、フレームごとの DeploymentQueueBudget の利用を改善する。

    • 参照カウントがゼロになると、KanziRuntime.Reference は手動で閉じない限り、自動的にペイロードを解放します。

  • Kanzi Studio は、Java プラグインのランタイムエラーに対して、コールスタックを含む詳細をより多く表示するようになりました。

  • ActivityCodeBehind クラスに、アクティビティのステータス変更に対するコールバックメソッドが導入されました。これらのメソッドにより、アクティビティの状態が変化した際のコードビハインドの動作を定義しやすくなります。

    更新されたアクティビティコードビハインドテンプレートでは、registerStatusChangeOverride の使用が新しいメソッドに置き換えられています。

  • Data-Driven Exclusive Activity Host のよく使用されるプロパティとして Data Context プロパティを追加しました。

  • Activity Browser で、次のことができるようになりました。

    • アクティビティホストを他のアクティビティホストの直下に直接追加します。

    • アクティビティの下に複数のアクティビティホストを追加します。

    • 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) は、そのユニフォームの一様でデフォルトのレンダーバリューバインディングを追加します。

    • void addUniformAndBinding(AbstractPropertyType propertyType, ShaderProgram::UniformTransformation transformation) は、指定した変換関数を使用して、そのユニフォームの一様でデフォルトのレンダー値バインディングを追加します。

    • void addFixedUniform(string_view name) は、固定ユニフォーム関数に一様でデフォルトのバインディングを追加し、パススルー変換を行います。

    • void addFixedUniform(string_view name, ShaderProgram::UniformTransformation transformation) は、指定した変換関数を使用して、固定ユニフォーム関数にユニフォームとデフォルトバインディングを追加します。

  • SPIR-VバイナリシェーダーをOpenGLターゲットで使用できるようになりました。バイナリシェーダーを使用すること を参照してください。

  • 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構成ファイルの変更 を参照してください。

  • SConsを使用して Kanzi アプリケーションをビルドするためのPython 3のサポートを追加しました。

  • Kanzi application framework (appfw) の Android で:

  • Kanzi Engine はAndroidプラットフォームで、KZ_USE_C99_SNPRINTF、KZ_EMULATE_STRTOF、KZ_EMULATE_TO_STRING の代わりに std::strtof、std::snprintf、std::to_string を使用するようになりました。

  • glslangをバージョン12.0.0に更新しました。

  • Android、Linux、QNX、およびWindowsプラットフォームパッケージを次のように更新しました:

    • Zlib 1.2.13

    • FreeType 2.12.1

      このバージョンのライブラリでは、スムーズラスターライザのパフォーマンスが10%以上向上しています。場合によっては、これらの変更によりテキストレンダリングに微妙な違いが生じることがあります。

    • HarfBuzz 5.3.1

      このバージョンのライブラリではテキストシェーピングに変更が加えられており、場合によってはテキストレイアウトに小さな違いが生じることがあります。

  • インテグリティプラットフォームパッケージを更新して、次を使用するようにしました:

    • 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に変更しました。

ドキュメント

注目すべき修正点

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

Viewport 2D ノードの祖先に2Dエフェクトを適用した際に、3Dコンテンツのレンダリングに小さなオフセットが生じる問題を修正しました。

Kanzi Engine

433605

Click トリガーが、より高い優先度の入力マニピュレータのキャンセルによってクリックの認識がトリガーされた場合に、メッセージ引数を含まない問題を修正しました。

Kanzi Engine

436687

バインディング式において、acquire バインディング関数を使用して取得したテキストリソースを文字列にキャストすることが可能になりました。

Kanzi Engine

437894

タッチ入力処理における問題を修正し、Kanzi が以下のようになる原因を解消しました。

  • キーのフォーカスノードが変更されたときに、タッチ入力処理を誤ってキャンセルします。

  • タッチ入力がもはや入力を処理しているノードに届かなくなった場合、タッチ入力の処理をキャンセルすることに失敗することがあります。

Kanzi Engine

438534

依存関係を持つリソースを扱う際、Kanzi は、DeploymentQueueBudget が許可する場合、依存関係と同じフレームでそのようなリソースをデプロイできるように、DeploymentQueueBudget を処理します。

Kanzi Engine

441268

Performance HUD は、32ビットメッシュインデックスバッファを使用する際に、正しい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アクティビティまたはアクティビティホストプレハブをコンポジションで開いたときに、Activity Browser のルートノードの名前として <Isolation preview model placeholder> が表示される問題を修正しました。

Kanzi Studio

440396

トリガー以外のノードコンポーネントでスタイルが機能しない問題を修正しました。

Kanzi Studio

441717

Screen ノードの名前を変更した後に、Activity Browser がルートアクティビティホストを追加できない問題を修正しました。

Kanzi Studio

442274

Activity Browser でアクティビティホストの名前変更を妨げていた問題を修正しました。

Kanzi Studio

444700

Kanzi Studio で参照プロジェクトを追加したときに、プロジェクトの CMakeLists.txt が破損する問題を修正しました。

Kanzi Studio

445492

Kanzi Studio Preview は、Preview に設定したのと同じビルド構成で JAR Kanzi Engine プラグインを使用するようになりました。

Kanzi Studio

420292

スライダーのレールのレンダリングに1フレームの遅延を引き起こしていた Factory Content Slider の問題を修正しました。

Kanzi framework SDK

421869

Node2Dプラグインの例がAndroidで動作しない問題を修正しました。

Kanzi framework SDK

関連項目

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

既知の問題