v2からの移行
ImKit v2を利用している既存プロジェクトをv3へ移行する際の手順と注意点です。APIのシグネチャ変更だけでなく、Dear ImGuiのABI整合性、レンダラー固有ヘッダー、プラットフォーム別ターゲット、およびホスト側の状態所有モデルの移行を確認してください。
- Dear ImGui バージョンの更新: ホスト側のDear ImGui、対応する公式バックエンド、およびImGui Test Engineのソースコードを、固定された
dockingブランチのコミット367b2c24f399988ddafc0bb4628da0106bcc09beに更新します。 - OpenGL / Metal プレビューヘッダーの分離: OpenGL関連の型定義(
GLFunctions、OpenGL3Renderer)は<imkit/preview_opengl3.h>に分離されました。<imkit/preview.h>はレンダラー非依存の共通型のみを提供します。macOS環境ではimkit::preview_metalをリンクし、借用したMTLDeviceおよびコマンドバッファを渡します。 - アクセシビリティ Sink の移行:
Win32ActionSinkをプラットフォーム非依存のNativeActionSinkへ置き換えます。コールバック関数はboolを返し、任意のUTF-8文字列を受け取ります。ビルド対象のOSに合わせてaccessibility_win32またはaccessibility_macosターゲットをリンクしてください。 - レガシー互換ターゲットの削除:
IMKIT_BUILD_WINDOW_FRAME_LEGACY_IMGUIオプションおよび旧ImGui 1.88向けのレガシーターゲット参照をCMakeから削除します。すべてのコンシューマは通常のv3ターゲットを使用し、固定されたDear ImGui ABIとリンクします。 - インストール済みSDKのABI検証: インストールされたSDKを利用する場合、ホスト側のOS、CPUアーキテクチャ、コンパイラ、Dear ImGuiリビジョン、および
imconfig.hのABI定義がSDKビルド時と完全一致していることを確認した上で、IMKIT_SDK_ABI_CONFIRMED=ONを指定します。 - ノードエディタのリンクと所有権の分離: 新しいノードエディタを採用する場合、CMakeで
imkit::node_editorを明示的にリンクします。ノードグラフデータ、リビジョン検証、編集適用の確定、Undo履歴、ノード評価、およびファイル永続化はすべてホスト側が所有し、GalleryのMaterial Graph companionをライブラリの内部状態として依存しないように移行します。
詳しいCMakeターゲット構成や依存関係の要件については 導入ガイド および 依存関係 を参照してください。
4.0へ進む
Section titled “4.0へ進む”3.3のあとに非推奨になった綴り、変わった既定トークン、ホストに影響しうるそのほかの変更は、4.0への移行ガイドにまとめています。