とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

【C++ dear ImGui】ドッキングパネルを作る

C++GUIフレームワークの一つである dear ImGUi を使ってドッキングパネルを作ります。自分用のメモとして書いています。

ImGuiの通常のプロジェクト作成はこちら:
shizenkarasuzon.hatenablog.com
 


プロジェクト作成

ドッキングパネルの機能は dear ImGui のmasuterには搭載されておらず、docking という branch 上に実装されています。
https://github.com/ocornut/imgui

よって、この記事は docking branchを使ってImGuiのプロジェクトを作成する、という記事です。


まず、dockingブランチをcloneします。

git clone -b ブランチ名 https://リポジトリのアドレス

  

cloneしたフォルダの中の、
・「imgui/examples/example_win32_directx11」の中のファイル全て(「example_win32_directx11.vcxproj」など」)
・「imgui/examples/」の中の「imgui_impl_win32.cpp」「imgui_impl_win32.h」「imgui_impl_dx11.cpp」「imgui_impl_dx11.h」
・「imgui/ 」にあるcppファイルとhファイル
を下の様に一つのフォルダの中に移動します

(何らかのフォルダの中身)
<imgui>
 ├ imconfig.h
 ├ imgui.cpp
 ├ imgui.h
 ├ imgui.ini
 ├ imgui_demo.cpp
 ├ imgui_draw.cpp
 ├ imgui_impl_dx11.cpp
 ├ imgui_impl_dx11.h
 ├ imgui_impl_win32.cpp
 ├ imgui_impl_win32.h
 ├ imgui_internal.h
 ├ imgui_widgets.cpp
 └ imstb_truetype.h
build_win32.bat
example_win32_directx11.vcxproj
example_win32_directx11.vcxproj.filters
main.cpp

  
この状態でVisualStudioを起動すると、ファイルの相対パスが変わっているのでincludeエラーが出ます。そのエラーを解消するために、
Visual Studioの「ソルーションエクスプローラ」(下画像)に入っている「main.cpp」以外のファイルを、右クリック→「プロジェクトから除外」します。
f:id:pythonjacascript:20200330000402j:plain
 

そして、ソリューションエクスプローラ上で「imgui」フォルダを右クリックして「追加」→「既存の項目」から、先ほど移動したファイル群を選択します。
すると、下画像のようになります
f:id:pythonjacascript:20200330000659j:plain
 
これで、VisualStudioの環境設定は終了したので、後は、

main.cppの中の

#include "imgui.h"
#include "imgui_impl_win32.h"
#include "imgui_impl_dx11.h"



 

#include "imgui/imgui.h"
#include "imgui/imgui_impl_win32.h"
#include "imgui/imgui_impl_dx11.h"


に変更してビルドすると、ビルドが通るはず...です


実行結果

f:id:pythonjacascript:20200329234824g:plain