Kanzi 3.9.9 マイグレーションガイド¶
このマイグレーションガイドを使用して、Kanzi アプリケーションを Kanzi 3.9.8 から Kanzi 3.9.9 に更新してください。
Kanzi Java API への変更¶
ほとんどの
create関数は、基底クラスではなく対応するクラスのObjectRefを返すようになりました。返された値から、クラスキャストを必要とせずに基底および派生機能の両方を直接使用できます。例:
Kanzi 3.9.8
Kanzi 3.9.9
戻り値の型
<T extends Resource> ObjectRef<T> ColorBrush.create(Domain domain)ObjectRef<ColorBrush> ColorBrush.create(Domain domain)使用方法
ObjectRef<Resource> myBrush = ColorBrush.create(domain, "myBrush")ObjectRef<ColorBrush> myBrush = ColorBrush.create(domain, "myBrush")Javaのインデックスに関する規約に従うため、インデックスを表すすべてのメソッドパラメータと戻り値は、現在
intを使用しています。例:
Kanzi 3.9.8
Kanzi 3.9.9
public float Vector2.get(long index)public float Vector2.get(int index)public Vector3 getRow(long index)public Vector3 getRow(int index)BitmapFont.create関数を削除しました。この関数は意図したとおりに動作しませんでした。なぜなら、BitmapFontクラスにはパブリックコンストラクタがないからです。
ブラシレンダリングの変更¶
Kanzi の以前のバージョンでは、場合によっては2Dノードでブラシプロパティを設定しても機能しませんでした。Kanzi はレイアウトフェーズ中にブラシをレンダリングする必要性を判断し、その結果、ブラシに設定されたプロパティ値のみがレンダリング結果に影響を与える原因となりました。
Kanzi 3.9.9は、レンダリングフェーズでのブラシレンダリングを決定し、すべてのプロパティ値のソースを考慮します。
この改善により、ブラシレンダリングAPIに以下の変更が導入されます。
これらの関数を追加しました:
BrushRenderer::getBlendModeOverrideとBrushRenderer::setBlendModeOverrideBrushRenderer::getOpaquenessHintとBrushRenderer::setOpaquenessHintkanzi::GlRenderValueBinding::getBlendModeOverridekanzi::GlRenderValueBinding::getOpaquenessHintとkanzi::GlRenderValueBinding::setOpaquenessHintkanzi::GlRenderValueBinding::getTranslucencyHintとkanzi::GlRenderValueBinding::setTranslucencyHintNodeVisual2D::BrushState::clearBrushとNodeVisual2D::BrushState::setBrush
BrushRenderer::bindOverride関数で、戻り値の型を Boolean に変更しました。NodeVisual2D::storeRenderingParameters関数をNodeVisual2D::updateRenderにリネームし、translucencyHintパラメータを削除しました。NodeVisual2D::updateBrushRenderers関数の名前をNodeVisual2D::updateBlendSettingsに変更しました。これらの関数を作成しました
const:kanzi::GlRenderValueBinding::getBlendModeValue
削除されました:
Brushクラスから:TranslucencyBits列挙子getBlendMode、isOpaque、isTranslucent、setContentTranslucent、およびsetRenderable関数
Brushを継承するクラスから、initializeおよびcalculateRenderingProperties関数BrushRenderer::hasRenderModeColorBrushRenderer::updateRenderMode、TextureBrushRenderer::updateRenderModeGlRenderValueBinding::setBlendModeFallbackNode2D::isForegroundTranslucencyRequestedBrushRenderer::updateRender関数から、blendModeとtranslucencyHintパラメータ。BrushRenderer::updateRenderOverride関数から、blendModeとtranslucencyHintパラメータ。NodeCompositor2D::updateRender関数から、translucencyHintパラメーター。
シェーダー処理の変更¶
Kanzi の以前のバージョンでは、Kanzi Studio がシェーダーの解析に失敗した場合、Kanzi はシェーダーコードをプリプロセスせずに kzb ファイルに書き込みました。Kanzi 3.9.9 では、そのようなシェーダーを赤一色でレンダリングするエラーシェーダーに置き換えます。
Kanzi Engine C++ APIを使用して、Kanzi Studio でサポートされていないシェーダーを作成および使用することができます。ShaderProgram を参照してください。
モーフウェイトの変更¶
以前のバージョンの Kanzi では、Model3D ノードにモーフメッシュを設定すると、Kanzi Engine はモーフウェイトを kanzi::Morph のデフォルトのウェイトで上書きしていました。Kanzi 3.9.9 では、モーフウェイトが保持されます。
以前の動作を再現するには、Model3D::MeshProperty を nullptr に設定し、新しい kanzi::Morph を割り当てます。
ブール値から文字列への変換の変更¶
Kanzi の以前のバージョンでは、Boolean から文字列への変換が常に同じ値になるとは限りませんでした。例えば:
Set Property アクションは、ブールプロパティの値に基づいて文字列プロパティの値を設定し、「1」または「0」を結果として得ました。
Kanzi Engine C++ APIでの任意のブール値から文字列へのプロパティバインディングは、「1」または「0」となります。
バインディング式において、リテラルのブール値を文字列に暗黙的にキャストすると「True」または「False」になりますが、ストリング (String) でキャストすると「true」または「false」になります。
Kanzi 3.9.9では、Booleanから文字列へのすべての変換は小文字の "true" または "false" になります。
Kanzi アプリケーションを以前のバージョンから移行するには、Boolean 値と比較するすべての文字列値が小文字の "true" または "false" であることを確認してください。
例えば、Set Property アクションを使用してブールプロパティから値を取得する文字列コントローラープロパティを持つステートマネージャーでは、状態を "1" や "0" の代わりに "true" や "false" を使用するように変更します。