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

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

カラーブレンディング

Kanzi 3.9.1 は、2Dノードブラシのレンダリングを修正し、新しいブレンドモードを導入します。2Dノードのブレンディングとコンポジティング を参照してください。

デフォルトで、マテリアルのブレンドモードが Opaque から Alpha: Premultiplied に変更されました。Kanzi Studio の以前のバージョンで作成されたプロジェクトを開き、ブレンドモードが設定されていないマテリアルが含まれている場合、Kanzi Studio は自動的にそれらのマテリアルに Blend Mode プロパティを追加し、Opaque に設定します。

カラー合成の改善により、Kanzi Engine API において Kanzi 3.9.0 と 3.9.1 の間で次の違いが導入されました。

Kanzi 3.9.0

Kanzi 3.9.1

graphics_enums.hpp

GraphicsBlendMode 列挙子の値:

  • GraphicsBlendModeOpaque

  • GraphicsBlendModeAlpha

  • GraphicsBlendModeAdditive

  • GraphicsBlendModePremultipliedAlpha

  • GraphicsBlendModeMixedAlpha

graphics_blend_mode.hpp

整数変数:

  • GraphicsBlendModeAdditive

  • GraphicsBlendModeAlpha

  • GraphicsBlendModeClear

  • GraphicsBlendModeDestinationAtop

  • GraphicsBlendModeDestinationIn

  • GraphicsBlendModeDestinationOut

  • GraphicsBlendModeDestinationOver

  • GraphicsBlendModeExclusiveOr

  • GraphicsBlendModeMixedAlpha

  • GraphicsBlendModeMultiply

  • GraphicsBlendModeOpaque

  • GraphicsBlendModePremultipliedAlpha

  • GraphicsBlendModeScreen

  • GraphicsBlendModeSourceAtop

  • GraphicsBlendModeSourceIn

  • GraphicsBlendModeSourceOut

blendMode パラメーターを追加します:

  • BrushRenderer::updateRender

  • BrushRenderer::updateRenderOverride とその ContentBrushRenderer、MaterialBrushRenderer、TextureBrushRenderer、および ColorBrushRenderer での実装

  • NodeCompositor2D::updateRender

  • NodeVisual2D::storeRenderingParameters

GlRenderState::setValue(GraphicsBlendMode value)

GlRenderState::setBlendModeValue (optional<int> value)

BrushRenderer::RenderMode 列挙子の値:

  • RenderModeNone

  • RenderModeInvalid

  • RenderModeOpaqueNoContent

  • RenderModeTranslucentNoContent

  • RenderModeOpaque

  • RenderModeTranslucent

BrushRenderer::RenderMode 列挙子の値:

  • RenderModeNone

  • RenderModeContent

  • RenderModeNoContent

BrushRenderer::updateRender()、BrushRenderer::updateRender(bool forceOpaque)

BrushRenderer::updateRender(optional<int> blendMode, bool forceOpaque, bool translucencyHint)

BrushRenderer::hasOpaqueRenderMode()

削除されました。

ColorBrushRenderer と TextureBrushRenderer は GlBrushRenderer から派生します。

ColorBrushRenderer と TextureBrushRenderer は ContentBrushRenderer から派生します。

ColorBrushRenderer と TextureBrushRenderer メソッド:

  • getRenderOpacityValue

  • getBlendModeValue

  • getContentTextureValue

  • getMaterial

基底クラスから継承されたメソッド:

  • ContentBrushRenderer::getRenderOpacityValue

  • BrushRenderer::getBlendModeValue

  • ContentBrushRenderer::getContentTextureValue

  • ContentBrushRenderer::getMaterial

ContentBrushRenderer::getBlendModeValue

BrushRenderer::getBlendModeValue から継承されました

Brush::setOpaque

Brush::setContentTranslucent

Brush::getContentTexture

削除されました。

BrushRenderer::getContentTexture を使用してください。

Brush::setContentTexture

削除されました。

BrushRenderer::setContentTexture を使用してください。

NodeCompositor2D::
isOpacityCompositionRequest
NodeCompositor2D::
isOpacityAndChildrenCompositionRequest

In:

  • NodeVisual2D::setForegroundBrushRenderer

  • NodeVisual2D::setBackgroundBrush

brush パラメータのデータ型は BrushSharedPtr です。






brush パラメータのデータ型は Brush* です。

In:

  • GlRenderValueBinding::update

  • RenderStatePropertyNotificationHandler::update、updateOverride とその実装

  • テンプレート関数 acquireRenderValueFromPropertyDefault と acquireRenderValueFromProperty およびそれに関連する特殊化

object パラメータのデータ型は Object です。










object パラメータのデータ型は PropertyObject です。

RenderEntry3D コンストラクタが変換しています。

RenderEntry3D コンストラクタは明示的であり、暗黙の型変換を許可しません。

これらのクラスと関数は KANZI_COREUI_API を使用します。

  • ColorBrushRenderer

  • MaterialBrushRenderer

  • TextureBrushRenderer

  • acquireUniformLocation

  • getUniformElementCount

  • updateRenderValue と updateRenderValueOverride のすべての特殊化

GlRenderValue テンプレートクラスは KANZI_COREUI_TEMPLATE_API を使用します。

キューブマップ

Kanzi 3.9.1 は、キューブマップ画像のレンダリングを修正します。キューブマップ画像を反転させたり、反射を修正したりする必要がなくなり、期待通りの結果が得られます。

プロジェクトを Kanzi 3.9.1に移行するには、修正に対応するようにpngキューブマップを調整してください。

  • サードパーティツールでキューブマップ画像を準備する際、画像を任意の軸に沿って反転しないでください。

  • ddsキューブマップテクスチャを生成するために使用するのと同じキューブマップ画像を使用してください。

  • キューブマップテクスチャでは、PosZ Image プロパティを使用してキューブマップの前面(カメラの後ろ)を設定し、NegZ Image プロパティを使用して背面(カメラの前)を設定します。

  • サンプリングに使用する反射ベクトルを変更しないでください。実際の方向を使用してください。

あなたのプロジェクトに、以前のバージョンの Kanzi Studio でキューブマップを機能させるために、サードパーティの画像編集ツールで手動で面を反転させたpngキューブマップが含まれている場合、再度面を反転させるのを避けるために、pngファイルを <TextureName> <direction><Axis>.png のパターンに従って命名することで、Kanzi Studio に画像をこれ以上処理しないよう指示することができます。

  • PosX Image: <TextureName> posX.png

  • NegX Image: <TextureName> negX.png

  • PosY Image: <TextureName> posY.png

  • NegY Image: <TextureName> negY.png

  • PosZ Image: <TextureName> posZ.png

  • NegZ Image: <TextureName> negZ.png

ファイル名にスペース文字を含めるようにしてください。

ddsファイルからインポートしたキューブマップテクスチャのサイド画像ファイルは、すでにこの命名規則に従っています。

キューブマップテクスチャ (Cube-map Texture) を使用する を参照してください。

入力とフォーカスの処理

Kanzi Engine APIを使用して作成された List Box および Scroll View ノードは、デフォルトでフォーカス可能ではなくなりました。List Box または Scroll View ノードがキーボードフォーカスを取得できるようにするには、Node::FocusableProperty を追加し、それを true に設定してください。

Kanzi Studio はデフォルトで、List Box ノードと Scroll View ノードに Focus > Focusable プロパティを追加して有効にします。

アクティビティとフォーカス

Activity Host ノードは、Activity ノードで最後にフォーカスされたノードの保存と復元を有効にするために、Save Last Focused Node および Focus Scope Type プロパティを必要としなくなりました。このバージョンから、Kanzi Studio はデフォルトで Activity Host ノードにこれらのプロパティを追加しなくなりました。

これらのプロパティの存在はアプリケーションの動作に影響を与えません。ただし、プロジェクト内の既存の Activity Host ノードから Save Last Focused Node および Focus Scope Type プロパティを削除することができます。

コードビハインドの変更

  • Code Behindのために KANZI_HOME 環境変数を設定する必要がなくなりました。

Kanzi アクティビティシステムの変更点

  • これらの Kanzi アクティビティメッセージ、メッセージ引数、およびプロパティをリファクタリングしました。

    Kanzi 3.9.0

    Kanzi 3.9.1

    ActivityConcept::PrefabAttachedMessage

    ActivityHostConcept::ActivityPrefabAttachedMessage

    ActivityConcept::PrefabDetachedMessage

    ActivityHostConcept::ActivityPrefabDetachedMessage

    ActivityConcept::StatusChangedMessageArguments::StatusArgument

    ActivityConcept::StatusChangedMessageArguments::ActivityStatus

    DataDrivenExclusiveActivityHostConcept::ActiveItemIndexProperty

    DataDrivenExclusiveActivityHostConcept::ActiveActivityIndexProperty

    これらのメッセージを使用する Kanzi Studio プロジェクトを開くと、Kanzi Studio が自動的に変更を適用します。

  • これらの Kanzi アクティビティAPIと変数の名前を変更しました。

    Kanzi 3.9.0

    Kanzi 3.9.1

    DataDrivenExclusiveActivityHostConcept::setActivityTemplate(string prefabUrl)

    DataDrivenExclusiveActivityHostConcept::setActivityTemplate(string_view prefabUrl)

    DataDrivenExclusiveActivityHostConcept::s_defaultActiveItemIndex

    DataDrivenExclusiveActivityHostConcept::s_defaultActiveActivityIndex

    DataDrivenExclusiveActivityHostConcept::getActiveItemIndex()

    DataDrivenExclusiveActivityHostConcept::getActiveActivityIndex()

    DataDrivenExclusiveActivityHostConcept::setActiveItemIndex()

    DataDrivenExclusiveActivityHostConcept::setActiveActivityIndex()

Kanzi Java API の変更

列挙クラス

すべての Kanzi Java API 列挙クラスは、現在インターフェース Enum を実装しており、そのため次のメソッドを提供します。

  • getValue() を使用して列挙子の整数値を取得する

  • toEnum() を整数値からそれぞれの列挙子に変換するために

Kanzi 3.9.0では、いくつかの列挙型クラスが異なる名前のメソッドを通じてこれらの機能を公開していましたが、Kanzi 3.9.1で名前が変更されました。

Kanzi 3.9.0

Kanzi 3.9.1

swigValue()

getValue()

swigToEnum()

toEnum()

PropertyType.DataType を PropertyDataType に名前変更しました。プロパティデータ型の名前は、ネイティブ Kanzi Engine API の名前と一致するようになりました。

Kanzi 3.9.0

Kanzi 3.9.1

PropertyType.DataType.Bool

PropertyDataType.PropertyDataTypeBool

PropertyType.DataType.Color

PropertyDataType.PropertyDataTypeColor

PropertyType.DataType.Float

PropertyDataType.PropertyDataTypeFloat

PropertyType.DataType.Int

PropertyDataType.PropertyDataTypeInt

PropertyType.DataType.Matrix3x3

PropertyDataType.PropertyDataTypeMatrix3x3

PropertyType.DataType.Matrix4x4

PropertyDataType.PropertyDataTypeMatrix4x4

PropertyType.DataType.Resource

PropertyDataType.PropertyDataTypeResource

PropertyType.DataType.SRT2D

PropertyDataType.PropertyDataTypeSRT2D

PropertyType.DataType.SRT3D

PropertyDataType.PropertyDataTypeSRT3D

PropertyType.DataType.String

PropertyDataType.PropertyDataTypeString

PropertyType.DataType.Vector2

PropertyDataType.PropertyDataTypeVector2

PropertyType.DataType.Vector3

PropertyDataType.PropertyDataTypeVector3

PropertyType.DataType.Vector4

PropertyDataType.PropertyDataTypeVector4

リソースマネージャー

Kanzi 3.9.1 は、カスタムリソースマネージャープロトコルハンドラーインターフェースを変更します。

  • ResourceManager.LoadTask インターフェースは、現在抽象クラスです。

  • ResourceManager は loadFunction および finishFunction の引数ではなくなりました。代わりに ResourceManager.LoadTask.getResourceManager() を使用してください。

Kanzi 3.9.0

Kanzi 3.9.1

class MyLoadTask
    implements ResourceManager.LoadTask
{
    @Override
    public void loadFunction(
        ResourceManager resourceManager)
    {
        ...
    }

    @Override
    public void finishFunction(
        ResourceManager resourceManager)
    {
        ...
    }

    @Override
    public Resource getResult()
    {
        ...
    }
}
class MyLoadTask
    extends ResourceManager.LoadTask
{
    @Override
    public void loadFunction()
    {
        ...
    }

    @Override
    public void finishFunction()
    {
        ...
    }

    @Override
    public Resource getResult()
    {
        ...
    }
}

関連項目

Kanzi 3.9.1 リリースノート

既知の問題