Kanzi 3.7 リリースノート¶
新機能 (New features)¶
アクティビティ
アクティビティシステムは、アプリケーションのUIの構造を定義し、UIナビゲーションを実装することを可能にします。アクティビティ を参照してください。
レンダーパスプレハブ
レンダーパスプレハブが導入され、これを使用してプロジェクト内で Kanzi が3Dコンテンツをレンダリングする方法を定義するレンダーパスツリーを作成できます。アプリケーション内でレンダーパスプレハブをカスタマイズして再利用することができます。レンダリング および レンダーパスを使用すること を参照してください。
バインディング
To Source バインディングが導入され、プロパティ値を別のノードやレンダーパスにプッシュすることが可能になりました。バインディング (Bindings) を参照してください。
レンダーパスでのバインディングのサポートが追加されました。詳細は レンダーパスプレハブのインスタンスをカスタマイズする を参照してください。
getCurrentValue バインディング関数を使用して、バインドしたいプロパティの現在の値を取得できるようになりました。
機能改善¶
バインディングインターフェースを変更しました:
インターフェースをバインディング (
AbstractBinding) とバインディングランタイム (AbstractBindingRuntime) に分割します。バインディングソース (
BindingSource) とバインディングターゲット (BindingTargetRuntime) は、現在別々のオブジェクトとして機能します。これらは、オブジェクト、データソース、およびメッセージへの読み書きを実装します。バインディングソースは、直接の値やリソースから読み取ることができます。
パフォーマンスプロファイリングシステムを改善しました:
いくつかのスタートアップおよびメインループのパフォーマンスプロファイリングカテゴリを追加しました。Kanzi Engine のパフォーマンスを測定する を参照してください。
ApplicationProperties::mainLoopProfilingSampleBufferCountを追加しました。これを使用して、メインループプロファイラーのデータサンプル数を設定できます。MainLoopProfilingSampleBufferCount を参照してください。リソースプロファイリングコンテキスト属性
ResourceProfilingContext::Durationを追加しました。これを使用して、リソースのロードおよびデプロイにかかる時間を測定できます。これには、そのリソースが依存するリソースも含まれます。リソースの読み込みとデプロイ時間の測定 を参照してください。各プロファイラーにコールバックを追加しました。プロファイリングサンプルの追加がバッファを満杯にした場合、Kanzi はこれらのコールバックを呼び出します。
フォーカスマネジメントに以下の改善と変更を加えました:
現在、次のタイプのフォーカススコープがあります: Group、Fence、Modal、および Popup。フォーカススコープのタイプを設定するには、Focus Scope Type プロパティ (
FocusManager::FocusScopeTypeProperty) を使用します。この変更の結果、FocusManager::FocusScopePropertyは非推奨となりました。フォーカス と フォーカスの使用 を参照してください。DirectionalFocusNavigationReasonを追加して、フォーカスチェーンナビゲーション (Tab とバックタブ) と方向フォーカスナビゲーション (上、下、左、右) を区別できるようにしました。getScopeFocusedNode()関数は、現在フォーカススコープの最後の論理フォーカスノードのみを返します。これは、ネストされたフォーカススコープが Logical Focus プロパティを設定している場合、フォーカススコープノード内にネストされたノードである可能性があります。setScopeFocusedNode()関数は、フォーカススコープの論理フォーカスノードを設定するようになりました。この関数は、ネストされたスコープでも機能します。ノードで Logical Focus プロパティ (
Node::LogicalFocusProperty) を有効にすると、そのノードが属するフォーカススコープ内で唯一の論理フォーカスノードであることを確認します。Node::trySetActiveFocus()関数は、現在フォーカスされているノードまたはその子ノードを返します。Next Focus Node および Previous Focus Node プロパティ (
FocusManager::NextFocusNodePathPropertyおよびFocusManager::PreviousFocusNodePathProperty) を使用してフォーカスチェーンナビゲーションルーティングをオーバーライドする場合、Kanzi はフォーカスチェーンナビゲーションがそのフォーカススコープを離れた後にのみオーバーライドを考慮します。
InputManipulatorクラスにこれらの変更を加えました。タッチまたはマウス入力シーケンス中に、
StateCanceledおよびStateDelayed入力マニピュレーターステートのサポートを実装しました。InputManipulator::cancel()関数は現在、未処理のジェスチャーをキャンセルし、InputManipulator::onCancel()関数はジェスチャーのキャンセルに反応します。ジェスチャーのキャンセルについて通知するために、これらのメッセージを入力マニピュレータに追加しました:
DragAndDropManipulator::CanceledMessageLongPressManipulator::LongPressCancelMessageMultiClickManipulator::CanceledMessagePanManipulator::CanceledMessagePinchManipulator::CanceledMessage
グリフ、フォント、テキストに以下の変更を加えました:
FontManagerクラスを追加しました。このクラスを使用して、現在のフォントラスタライザーエンジンを設定し、フォントを作成し、フォントローダーにアクセスし、グリフキャッシュマネージャーにアクセスします。Text Block ノード内のテキストのハイフネーションを設定できるようにするために、Hyphenate プロパティ (
TextBlockConcept::HyphenateProperty) を追加しました。ワードラッピングはデフォルトで無効になっています。Text Block ノードで複数行のテキストを作成するには、Word Wrap (
TextBlockConcept::WordWrapProperty) プロパティを追加して有効にしてください。これらのクラスをC++に変換しました:
FontiTypeFontFreeTypeFontTextFormatTextLayouterTextLayoutGlyphCacheGlyphCacheManager
これらの Kanzi Engine クラスを C++ に変換しました。
PlaneQuaternionRaySpline
ResourceManagerに、ローダースレッドのハンドルを取得できる機能が追加されました。これにより、アプリケーションコードがその設定を調整できます。リソースマネージャーは、アプリケーションの起動時にすべてのローダースレッドを作成し、アプリケーションの実行中はシャットダウン時を除いてローダースレッドを追加または削除しません。ResourceManager::getLoaderThreadHandleとResourceManager::getLoaderThreadCountを参照してください。Android用の Kanzi アプリケーションを作成するためのワークフローが改善されました。
Android StudioとGradleビルドシステムを使用して、Kanzi アプリケーションをAndroidにビルドおよびデプロイできるようになりました。
Edit > User Preferences > Advanced > Open Build Environment Configuration で、
ANDROID_HOMEとJAVA_HOMEの環境変数を設定できるようになりました。これにより、アプリケーションをAndroidデバイスにデプロイするために必要です。
Kanzi Studio Preview のアンチエイリアスを設定できるようになりました。Preview と Application Player でアンチエイリアスを設定する を参照してください。
Kanzi Studio Preview は、非推奨のレガシーkzbフォーマットを使用しなくなりました。非推奨のレガシーkzbフォーマットを使用するには、Project > Properties で Preview Kzb Version プロパティを設定してください。
Hover プロパティ (
Node::HoverProperty) を追加しました。Kanzi は、ヒットテスト可能なノードとその親ノードの Hover プロパティを更新して、ノードがカーソルの下で最前面のノードであるかどうかを示します。Composition Target Render Pass で、Resolve Immediately プロパティはデフォルトで有効になっています。
Kanzi アプリケーションのグラフィックス初期化を設定できるようになりました。グラフィックスパフォーマンスのロギング を参照してください。
Kanzi Studio で Kanzi Engine プラグインのカスタムタイプを表示する方法を設定するためのメタデータ属性の構文の一貫性を向上させました。Kanzi Studio で Kanzi Engine プラグインのカスタムタイプを表示するためのリファレンス を参照してください。
Kanzi Studio プラグインインターフェースでは、
IUserPreferencesインターフェースを使用して、Kanzi Studio ウィンドウプラグインのプロジェクトに依存しない設定を保存できるようになりました。Kanzi Studio プラグインAPIリファレンス を参照してください。いくつかの Kanzi Studio のユーザビリティ向上により、より短時間で作業を完了できます。
Node Tree では、Ctrl H を使用して、Page および Page Host ノードをすばやく非表示にすることができます。
Kanzi Studio でトンネリングメッセージハンドラを設定できるようになりました。
Kanzi Studio プロジェクトをクリーンアップする際に、Kanzi Engine アプリケーションコードで使用されているプレハブテンプレートを削除しないようにするために、Is Used By Code プロパティを有効にすることができます。プロジェクトで使用していないリソースとプレハブを削除する を参照してください。
変更点¶
Visual Studio 2017のサポートを追加しました。Kanzi はVisual Studio 2013をサポートしなくなりました。
Kanzi は、現在 C++14 を必要とします。
Android x86_64 のサポートを追加しました。
libjpegをバージョン9cに更新しました。
FBX SDKをバージョン2019.2に更新しました。
Kanzi のライセンス条項が更新されました。KANZI ONE SOFTWARE LICENSE TERMS を参照してください。
ドキュメント¶
Kanzi アプリケーションにキーボード入力を追加する方法を学ぶためのチュートリアルを改善し、フォーカススコープとトリガーの使用方法を示しました。
Kanzi アプリケーションのデータをデータソースから取得し、
TaskDispatcherとワーカースレッドを使用してデータソースの変更を追跡する方法を学ぶためのチュートリアルを改善しました。チュートリアル: データソースからアプリケーションデータを取得する を参照してください。
Kanzi ロギングシステムを使用して、メッセージを Log ウィンドウ、Kanzi デバッグコンソール、標準出力、およびターゲットデバイスのシステムログに出力する方法についての手順を追加しました。ロギング を参照してください。
Kanzi APIでベジエキーフレームを操作する方法に関するドキュメントを追加しました。
KeyframeAnimation::BezierKeyframeを参照してください。
フィックス (Fixes)¶
Kanzi の安定性と使いやすさを向上させるための問題を修正しました。