Kanzi 3.9.0 マイグレーションガイド¶
このマイグレーションガイドを使用して、Kanzi アプリケーションを Kanzi 3.8.0 から Kanzi 3.9.0 に更新してください。
JavaScript機能の削除¶
Kanzi は V8 JavaScript エンジンを含まなくなり、Kanzi Studio は Execute Script アクションを含まなくなりました。これにより、Kanzi アプリケーションで JavaScript スクリプトを使用することができました。
Kanzi 3.9.0で Kanzi Studio プロジェクトを開くと、Execute Script アクションを使用している場合、Kanzi Studio はこのアクションを使用しているノードを無効としてマークし、赤い文字で表示しますが、削除はしません。これにより、これらのアクションとそのスクリプトからの機能を評価し、他の Kanzi 機能を使用してその機能を手動で再現することができます。
アプリケーションコードから削除します:
#include <kanzi/js/module.hpp>V8Module::registerModule(domain);
64ビット Kanzi Studio プレビュー¶
Kanzi Studio プレビューは、現在64ビットアーキテクチャを使用しています。Kanzi アプリケーションを移行するには:
Kanzi Studio プロジェクトを Kanzi Studio 3.9.0 で開く前にバックアップしてください。Kanzi Studio はプロジェクトを自動的に不可逆的に更新します。
これらの項目のデフォルト値を変更した場合、Kanzi Studio プロジェクトを手動で移行する必要があります。
Application/src/plugin/CMakeLists.txtで、${CMAKE_VS_PLATFORM_NAME}を Kanzi 固有の${PLATFORM_TARGET}に変更し、Win64に評価されるようにします。Application/generate_cmake_vs2017_solution.batに-A x64パラメーターを追加します。たとえば、変更
cmake -S . -B build_vs2017 -G "Visual Studio 15 2017"
終点
cmake -S . -B build_vs2017 -G "Visual Studio 15 2017" -A x64
Properties の各プラグインに対して、Library > Kanzi Engine Plugins の Kanzi Studio で、Kanzi Engine プラグインの64ビットバージョンの場所にプラグインパスを更新します。
Kanzi Engine プラグインを 64 ビット構成でリビルドし、そのようなプラグインを使用する Kanzi Studio プロジェクトで、Library > Kanzi Engine Plugins を右クリックして各プラグインを選択し、Update Kanzi Engine Plugin を選択します。
MainLoopScheduler サブシステムの紹介¶
クラス
SuspensionManagerとFPSContraintsが削除されました。これらのクラスからの依然として関連性のある機能は、現在MainLoopSchedulerに組み込まれています。廃止されたタスクスケジューラの実装
KzuTaskSchedulerとSchedulerを削除しました。削除されたクラス
MainLoopTaskProfiler、MainLoopTaskSample、MainLoopTaskProfilerCategories、およびMainLoopTaskProfileRegistry。MainLoopProfilerとMainLoopProfilingSampleDataに置き換えられました。クラス
WatermarkとSplashScreenが削除されました。Applicationクラス:列挙型
StateをMainLoopScheduler::Stateに移動しました。ステート
SleepingをPausedに名前変更しました。ステート
UninitializedとErrorを削除しました。sleep()をpause()に、wakeup()をresume()に名前を変更しました。onSleep()、onIdle()、およびonWakeup()を削除しました。onPause()、onResumeCheck()、およびonResume()が導入され、Kanzi はPaused状態へのエントリー時、停止したループの各イテレーション、およびPaused状態からの退出時にそれぞれ呼び出されます。onPause()とonResume()は、以前のバージョンでsleep()とwakeup()の呼び出し内で直接呼び出されていたonSleep()とonWakeup()と同等ではないことに注意してください。onResumeCheck()もonIdle()と同等ではなく、現在はウェイクアップイベントのためにイベントキューをチェックするデフォルトの実装を保持しています。runOverride()、updateOverride()、renderOverride()、suspendOverride()、yieldOverride()、sleepOverride()、およびwakeupOverride()を削除しました。updateOverride()を削除しました。onUpdate()は非推奨ですが、まだ削除されていません。代わりに、Userステージのメインループにタスクを挿入することを推奨します。onPreRender()とonPostRender()を削除しました。代わりに、Renderステージの前または後にタスクを挿入してください。initializeWatermark()とinitializeSplashScreen()を削除しました。getLastFrameTime()とgetStopWatch()を削除しました。代わりにMainLoopSchedulerタイミングインターフェースgetLastFrameDuration()を使用してください。reloadProject()を削除しました。projectReloaded()とonProjectInitialized()を削除しました。executePendingChanges()をloadStartupKzb()にリネームしました。suspend()、yield()、idle()、およびidleLoop()が削除されました。この機能は現在、MainLoopSchedulerによって実装されています。
Timer 機能¶
Timer 機能は現在 MainLoopScheduler サブシステムの一部であり、削除された Timer サブシステムを置き換えます。
これで、タイマータスクをメインループに直接追加します。
ステージの前にタイマータスクを追加するには、
MainLoopScheduler::prependTimerを使用します。ステージの後にタイマータスクを追加するには、
MainLoopScheduler::appendTimerを使用します。タイマーを削除するには、
MainLoopScheduler::removeTimerを使用します。
タイマーには、次の再発オプションがあります:
Kanzi は、追加されてから指定された時間が経過すると、
MainLoopScheduler::TimerRecurrence::OneTimeタイマーのタスクを一度実行します。Kanzi は、指定された間隔で
MainLoopScheduler::TimerRecurrence::Recurringタイマーのタスクを定期的に実行します。メインループの反復間に複数の間隔が経過した場合、Kanzi は繰り返しタスクを一度だけ実行しますが、コールバックインターフェースを通じて繰り返し回数を提供します。
タイマーはもはやメッセージ引数やプロパティを使用せず、代わりにタイマーコールバックが直接、タイマーの間隔の倍数に切り下げられた経過時間と経過した間隔の数を引数として受け取ります。
パフォーマンス HUD (Performance HUD)¶
Performance HUD を MainLoopScheduler で動作するように更新しました。
ApplicationProperties::profilingCategoryFilterからshowオプションを削除しました。アプリケーションプロパティ
PerformanceInfoProperties::graphFilterを導入しました。これは、Performance HUD に表示するプロファイリンググラフのタスクをセミコロンで区切ったリストです。
バインディング (Bindings)¶
Kanzi の以前のバージョンでは、バインディングがソース値としてソースノードに存在しないプロパティタイプを使用した場合、Kanzi はそのバインディングを適用しませんでした。現在では、ソースノードにプロパティタイプが存在しない場合、バインディングはそのプロパティタイプのデフォルト値を使用します。
リソースマネージャー¶
ResourceManager ProtocolHandler シグネチャをモダン化しました。
関数ポインタの代わりに、現在は
std::functionを使用します。userdata引数を削除しました。これで、ラムダキャプチャなどを使用して、関数で追加の状態をキャプチャできるようになりました。
DataObject クラス¶
DataObject クラスは、もはやパブリックコンストラクタを持ちません。これらを構築するには、静的な create 関数を使用する必要があります。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
|
|
|
|
|
|
カラースペース (Color space)¶
線形カラー ワークフローが導入され、これが今後デフォルトのカラースペースとなります。アプリケーションで従来のカラースペース(非線形ガンマ)を引き続き使用したい場合は、そのアプリケーションの application.cfg ファイルに次を追加してください。
SurfaceColorSpace = legacy
注釈
linux_imx8_wayland_aarch64 プラットフォームでは、Kanzi アプリケーションはレガシーカラースペースでのみ動作します。
カラーワークフロー と サーフェスのプロパティ を参照してください。
Node クラス¶
getRelativePath()の戻り値から末尾の/を削除しました。例えば、my/item/の代わりに、関数は現在my/itemを返します。Node::PathPropertyとNode::getPath()の値に先頭の/を追加して、有効な絶対パスにしました。例えば、Screen/RootPageの代わりに、値は現在/Screen/RootPageです。
Light ノード¶
Light ノードから Color Scale (Light::ColorScaleProperty) プロパティを削除しました。ライトの明るさを調整するには、ライトの色プロパティの Intensity (I) を設定します。ライトの明るさを調整する を参照してください。
Kanzi Studio でプロジェクトを開くと、Kanzi Studio はライトプロパティのローカル値を自動的に変換しますが、プロジェクトを Kanzi 3.9.0に変換した後に手動でライトを調整する必要がある場合があります。例えば、プロジェクトにライトの色プロパティをカスタムプロパティタイプにバインドするバインディングが含まれている場合、そのカスタムプロパティタイプの Editor を HDR color editor に設定し、ライトの色を調整してください。
アクティビティシステム¶
Activity または Activity Host ノードを使用しているアプリケーションの場合、アプリケーションを Kanzi 3.8.0 から 3.9.0 に移行する唯一の方法は、アプリケーションのアクティビティ構造を再作成することです。
アクティビティ構造を再作成する前に、Node Tree からすべての既存の Activity および Activity Host ノードを削除してください。
アクティビティシステムの使用方法を学ぶには:
APIの変更点¶
タイプ (Type) |
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|---|
class |
|
|
ヘッダーファイル |
|
|
コードビハインド¶
Kanzi Studio でコードビハインドを使用するアプリケーションのプロジェクトを開くと、コードビハインド機能を移行する前に、Kanzi Studio プレビューを開始できません。
コードビハインドを使用するアプリケーションを移行するには:
Kanzi Studio 3.9.0で、Code Behindを使用するアプリケーションのプロジェクトを開き、Library > Kanzi Engine Plugins でCode Behindプラグイン (<ProjectName>_CodeBehind) を選択し、削除します。
アプリケーションのアクティビティ構造を再作成します。アクティビティシステム を参照してください。
コードビハインドを再追加:
Activity Browser で、コードビハインドを追加したい Activity または Activity Host を右クリックし、Add Code Behind を選択します。
Kanzi 3.8.0で作成したコードビハインド機能をコピーします。
Kanzi Studio project Kanzi Studio テンプレートに基づいてアプリケーションを作成する場合、機能をコピーしてください。
<ProjectName>/CodeBehind/Application/includeから<ProjectName>/CodeBehind/includeまで<ProjectName>/CodeBehind/Application/sourceから<ProjectName>/CodeBehind/sourceまで
Application、Application with data source plugin、または Application with Kanzi Engine plugin Kanzi Studio テンプレートに基づいてアプリケーションを作成する場合は、機能をコピーしてください。
<ProjectName>/Tool_project/CodeBehind/Application/includeから<ProjectName>/Tool_project/CodeBehind/includeまで<ProjectName>/Tool_project/CodeBehind/Application/sourceから<ProjectName>/Tool_project/CodeBehind/sourceまで
コードビハインドファイルの命名規則の変更に注意してください。
ファイルの目的
Kanzi 3.8.0
Kanzi 3.9.0
モジュール (Module)
<ProjectName>codebehind_module<ProjectName>_code_behind_moduleアクティビティ
<ActivityName>activitycode<ProjectName>_<ActivityName>_activity_codeアクティビティホスト
<ActivityHostName>activitycode<ProjectName>_<ActivityHostName>_activity_code
<ProjectName>CodeBehind/Applicationディレクトリを削除します。Kanzi Studio でプレビューを再起動します。
コードビハインドを使用したプログラミングアクティビティ を参照してください。
Android Gradle Plugin と Gradle¶
Kanzi アプリケーションを Android Gradle Plugin 4.2.2 と Gradle 6.7.1 を使用するように移行するには:
Android Studioの
android_gradle/app/build.gradleファイルで、次を置き換えます:externalNativeBuild { cmake { path "CMakeLists.txt" } }
以下に置き換えます。
externalNativeBuild { cmake { path "CMakeLists.txt" } }
android_gradle/build.gradleファイルで次を置き換えます:dependencies { classpath 'com.android.tools.build:gradle:<android-studio-version>' classpath 'com.rightware.gradle:kanzi:<gradle-plugin-version>' }
以下に置き換えます。
dependencies { classpath 'com.android.tools.build:gradle:4.2.2' classpath 'com.rightware.gradle:kanzi:0.6.2' }
android_gradle/gradle/wrapper/gradle-wrapper.propertiesファイルで次を置き換えます:distributionUrl=https\://services.gradle.org/distributions/gradle-<version>-bin.zip
以下に置き換えます。
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
android_gradle/gradle.propertiesファイルで次を置き換えます:org.gradle.jvmargs=-Xmx<size>m
以下に置き換えます。
org.gradle.jvmargs=-Xmx4608m
アプリケーションでGradleを更新するには、次のいずれかを行います。
Android Studioで Gradle > Task > build setup > Wrapper を選択します。
コマンドラインで実行します:
./gradlew wrapper
レンダーパス (Render Passes)¶
フィルタ¶
フィルタを改良しました。
この表は、Kanzi 3.8.0と3.9.0のフィルタクラスの違いを示しています。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
削除されました |
|
|
|
|
|
|
Instantiator ノード¶
Instantiator ノードをリファクタリングしました。Instantiator ノードは、インスタンス化するノードのローカル変換を保持しなくなりました。インスタンス化は、インスタンス化されたノードから開始されます。Instantiator ノードを使用する を参照してください。
プロジェクトを Kanzi 3.9に移行するには、インスタンス化されたノードから Instantiator ノードに変換を移動するか、代わりにインスタンス化する親ノードを追加する必要があるかもしれません。
テキストレンダリング¶
テキストレンダリングを実装するノード(TextBlock2D、TextBlock3D、TextBox2D、TextBox3D)のための TextConcept ベースクラスを導入しました。
TextConcept に移動しました。これらのプロパティは、テキストレンダリングを実装するすべてのノードに共通です。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
入力とフォーカスの処理¶
キー押下の繰り返し機能を
KeyRepeatConceptおよびKeyRepeatConceptImpl<>からKeyRepeatGeneratorに移動しました。KeyInputConcept、KeyInputConceptImpl<>、およびKeyInputGestureDetector<>の機能をInputManipulatorに移動しました。Enter キーハンドリングメッセージ
InputMethod::pressEnterKey、InputMethod::releaseEnterKey、InputMethod::cancelEnterKey、TextBoxConcept::EnterKeyPressedMessage、TextBoxConcept::EnterKeyReleasedMessage、TextBoxConcept::EnterKeyCanceledMessage、TextInputManipulator::EnterKeyPressedMessage、TextInputManipulator::EnterKeyReleasedMessage、およびTextInputManipulator::EnterKeyCanceledMessageを削除しました。入力メソッドアクション処理メッセージ
TextBoxConcept::InputMethodActionMessage、TextBoxConcept::InputMethodAvailableMessage、およびTextBoxConcept::InputMethodUnavailableMessageを導入しました。メッセージ引数から
FocusManager::PreFocusMessageArguments::AcceptFocusPropertyを削除しました。ノードにフォーカスを移動できるかどうかを判断するには、フォーカススコープタイプとフォーカスマネジメントに関連するプロパティを使用します。ノードツリー内でフォーカスチェーンのナビゲーションを制限するには、Focus Scope Type プロパティをノードにアタッチし、その値を Fence、Modal、または Popup に設定します。FocusManager::LogicalFocusProperty(Logical Focus)プロパティは非推奨になりました。Kanzi Studio は、Logical Focus プロパティを使用するプロジェクトを自動的に変換し、Logical Focus プロパティを Focus Order プロパティが0に設定されたものに置き換えます。この変更により、Focus Order プロパティが0に設定されたノードがフォーカススコープ内の最初のフォーカス可能なノードとして設定されます。フォーカスチェイン内でフォーカスを移動する を参照してください。
FocusManagerから、方向ナビゲーションに関連するこれらのプロパティとオプションが削除されました。NextFocusNodePathProperty、PreviousFocusNodePathProperty、UpNavigationNodePathProperty、DownNavigationNodePathProperty、LeftNavigationNodePathProperty、およびRightNavigationNodePathPropertyプロパティ。FocusChainDirectionオプションUpFocusable、DownFocusable、LeftFocusable、およびRightFocusable。
ナビゲーションマニピュレータを使用して、方向ナビゲーションを実装します。Navigation Manipulator を使用する を参照してください。
これらの
FocusManagerメソッドをリネームまたは削除しました。Kanzi 3.8.0
Kanzi 3.9.0
FocusManager::getActiveFocus()FocusManager::getFocus()FocusManager::trySetActiveFocus()FocusManager::trySetFocus()FocusManager::tryMoveActiveFocus()FocusManager::tryMoveFocus()FocusManager::tryMoveActiveFocusForward()FocusManager::tryMoveFocusForward()FocusManager::tryMoveActiveFocusBackward()FocusManager::tryMoveFocusBackward()FocusManager::tryMoveActiveFocusUpward()削除されました
FocusManager::tryMoveActiveFocusDownward()削除されました
FocusManager::tryMoveActiveFocusLeft()削除されました
FocusManager::tryMoveActiveFocusRight()削除されました
スクロール機能¶
Scroll View 2D ノードと Grid List Box 2D ノードは、デフォルトでユーザーがポインターをドラッグした量と同じだけスクロールします。プロジェクトを Kanzi 3.9.0 に移行するには、Scroll View 2D ノードと Grid List Box 2D ノードで Scroll Sensitivity プロパティ (
ScrollViewConcept::SensitivityProperty,GridListBoxConcept::SensitivityProperty) の値を調整します。デフォルト値は 1 です。例えば、ノードをユーザーがポインターをドラッグした量の2倍スクロールさせるには、Scroll Sensitivity プロパティの値を 2 に設定します。Kanzi 3.9.0は、Scroll Sensitivity プロパティを負の値に設定したことによって引き起こされる意図しない動作を削除します。Scroll Sensitivity プロパティは、もはや負の値を持つことができません。例えば、3Dモデルを回転させるために使用する Scroll View 2D ノードでスクロールの方向を変更するには、回転をスクロール位置にバインドするバインディングを修正してください。チュートリアル: 3Dモデルを回転させる を参照してください。
Scroll View、Grid List Box、および Trajectory List Box 3D ノードでは、Scroll Position プロパティ(
ScrollViewConcept::ScrollPositionProperty、GridListBoxConcept::ScrollPositionProperty、TrajectoryListBox3D::ScrollPositionProperty)の値が、ポインタが右下に移動すると減少するようになりました。プロジェクトを Kanzi 3.9.0に移行するには、Scroll View または List Box ノードのスクロール位置をターゲットとするバインディングと Set Property アクションを調整してください。場合によっては、Set Property アクションをバインディングに置き換える必要があります。たとえば、以前のバージョンの Kanzi で Scroll Position プロパティの値を使用して Scroll View ノード内のコンテンツの変換を設定していた場合、Scroll Position プロパティの値を反転させてください。Scroll View ノードの作成 を参照してください。ScrollViewConcept::ScrollAxisProperty(Scroll Axis) プロパティは非推奨になりました。Kanzi Studio は、Scroll Axis プロパティを使用するプロジェクトを自動的に変換し、Scroll Axis プロパティを Allowed Scroll Axis プロパティに置き換えます。
Scroll View ノードと Grid List Box ノードをスクロールするメッセージをリファクタリングしました。
Kanzi 3.8.0
Kanzi 3.9.0
ScrollViewConcept::ScrollDirectionMessageScrollViewConcept::ScrollDownMessageScrollViewConcept::ScrollUpMessageScrollViewConcept::ScrollLeftMessageScrollViewConcept::ScrollRightMessageScrollViewConcept::ScrollEdgeMessageScrollViewConcept::ScrollHomeMessageScrollViewConcept::ScrollEndMessageScrollViewConcept::ScrollPageMessageScrollViewConcept::ScrollPageDownMessageScrollViewConcept::ScrollPageUpMessage
ListBoxItemContainer プレハブ¶
ListBoxItemContainer2D と ListBoxItemContainer3D は、ContentLayout2D と ContentLayout3D から継承されるようになりました。
2Dノードキャッシング¶
これらのプロパティが削除されました:
Cache Children (
Node2D::CacheChildrenProperty)Kanzi は、ノードの子のみをキャッシュすることをサポートしなくなりました。ノード自体をキャッシュせずにその子孫をキャッシュするには、子ノードを別のノードに移動し、そのノードで Caching Mode プロパティを Enabled に設定してください。
Cache Result (
Node2D::CacheResultProperty)Kanzi Studio は、Cache Result プロパティを使用するプロジェクトを自動的に変換し、Caching Mode プロパティに置き換えます。
Cache Self (
Node2D::CacheSelfProperty)Kanzi は、ノードをキャッシュしてもその子孫をキャッシュしないことをサポートしなくなりました。ノードをキャッシュせずにその子孫をキャッシュするには、子孫ノードを別のノードに移動し、キャッシュしたいノードで Caching Mode プロパティを Enabled に設定してください。
2Dノードのキャッシングシステムは、2Dノードのキャッシング を参照してください。
ForwardingAction クラス¶
ForwardingAction クラスを改善し、派生クラスでのボイラープレートコードの必要性を減らしました。
すべてのバインディングランタイムのルックアップコンテキストは、関連するトリガーに自動的にアタッチされるようになりました。派生クラスはこれを行う必要がなくなりました。
すべてのメッセージバインディングランタイムのルックアップコンテキストは、関連するトリガーの転送メッセージに自動的にアタッチされるようになりました。派生クラスはこれを行う必要がなくなりました。
リリースノートでは、その他の改善点 を参照してください。
プロファイラカテゴリの作成¶
プロファイリングカテゴリを作成するには、プロファイリングカテゴリを初期化するために追加のマクロを呼び出す必要があります。この2番目のマクロはcppファイルに配置する必要があります。この新しいマクロは、同じアプリケーションで動的にロードされる複数のライブラリに含めたときにカテゴリが再登録されるのを防ぎます。
プロファイリングカテゴリを作成するには、kzProfilingRegisterExportedCategory と kzProfilingInitializeCategory の両方を使用します。kzProfilingRegisterExportedCategory はhppファイルまたはcppファイルのいずれかに配置できます。kzProfilingInitializeCategory はcppファイルで使用する必要があります。
プロファイリングカテゴリを作成する方法の例については、Kanzi Engine C++ API リファレンス の kzProfilingRegisterExportedCategory のコード例を参照してください。
// Example export/import macro for Windows.
#ifdef USE_SHARED_LIBRARY
#ifdef COMPILE_LIBRARY_CODE
// Compiling shared library: export category to shared library.
#define EXPORT_IMPORT_API __declspec(dllexport)
#else
// Compiling user code: import category from shared library.
#define EXPORT_IMPORT_API __declspec(dllimport)
#endif
#else
// Use empty macro for static linking.
#define EXPORT_IMPORT_API
#endif
#define MY_PROFILING_CATEGORY_EXPORTED kzProfilingCreateCategory(KZ_PROFILING_ENABLED_CATEGORY, "myCategoryExported", KZ_PROFILING_DEFAULT_SAMPLE_BUFFER_SIZE)
kzProfilingRegisterExportedCategory(EXPORT_IMPORT_API, MY_PROFILING_CATEGORY_EXPORTED, KZ_PROFILING_DISABLED_CATEGORY);
// kzProfilingInitializeCategory must be placed in a cpp file.
kzProfilingInitializeCategory(EXPORT_IMPORT_API, MY_PROFILING_CATEGORY_EXPORTED, KZ_PROFILING_DISABLED_CATEGORY);
アプリケーション構成¶
グラフィックスコンテキストとサーフェスクライアントAPI¶
application.cfg で使用するこれらの設定とオプションの名前を変更しました。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
Application::onConfigure() 関数で使用するこれらの設定とオプションの名前を変更しました。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
グラフィックスライブラリ を参照してください。
バッファスワップの動作¶
Application::onConfigure() 関数でバッファスワップに使用する設定オプションの名前を変更しました。
Kanzi 3.8.0 |
Kanzi 3.9.0 |
|---|---|
|
|
|
|
|
|
サーフェスのプロパティ を参照してください。
その他の変更¶
廃止された Play Animation アクションを削除しました。代わりに Animation Player を使用してください。キーフレームアニメーションの使用 と Kanzi Engine APIを使用してアニメーションとタイムラインを作成する を参照してください。
kanzi/coreの変更:ScopedRefCounterをkanzi/core/util/scoped_ref_counter.hppに移動しました。from_charsをkanzi/core/cpp/charconv.hppに移動しました。KZ_NOT_MOVABLE_NOT_COPYABLEとKZ_MOVABLE_BUT_NOT_COPYABLEをkanzi/core/util/macros.hppに移動しました。kanzi/core/cpp/iterator.hppで定義されたkzArrayLengthをsize(array)に置き換えました。std::moveをkanzi名前空間にインポートしました。boost/move/utility.hppのインクルージョンを削除しました。削除されたマクロ:
KZ_COPY_ASSIGN_REFKZ_RV_REFKZ_MOVE_RETKZ_MOVE_BASEKZ_USE_MOVE_EMULATION
KzuBoundingVolumeクラスとKzuTransformedBoundingVolumeクラスをBoxクラスとOrientedBoundingBoxクラスに置き換えました。あなたのクラスがNodeから派生し、Node::getBoundingVolume仮想関数をオーバーライドしている場合、Node3D::getBoundingBox関数を実装する必要があります。Renderer3D内のバウンディングボックスをレンダリングするための関連ヘルパー関数の名前を変更しました。ActionArgumentTypeをKzbMemoryParser::ArgumentTypeに移動しました。KzcHashMapとKzcHashSetを削除しました。代わりにunordered_mapとunordered_setを使用してください。KzcDynamicArrayを削除しました。代わりにvectorを使用してください。KzcMemoryManagerを削除しました。代わりにvector、new/delete、new[]/delete[]を使用してください。kzsTimeGetCurrentTimestampとkzsTimeGetCurrentTimeMicrosecondsを削除しました。代わりにkanzi::Clockまたはstd::steady_clockを使用してください。廃止された内部ビットマップ画像読み込み機能を削除しました。
imageLoadPVRTCimageLoadETCimageLoadATCimageLoadASTCimageLoadRaw2D
task_dispatcher.hppをkanzi/core.ui/schedulerからkanzi/core.ui/task_dispatcherに移動しました。rayPickCalculateRayをCamera::calculateCameraRayに置き換えました。