ImGUIプロジェクト確立(cmake+MinGW64)

ImGUI 様

ImGui は、さまざまな対話型ツールやエディターの作成に使用できる軽量の C++ グラフィカル インターフェイス ライブラリです。クロスプラットフォームかつ高いパフォーマンスが特徴です。

ImGUI は単独でウィンドウを作成できません。ウィンドウの作成には Win32API、glfw、SDL などのツールを使用する必要があります。また、グラフィックのレンダリングには OpenGL や DirectX、vulkan などを使用する必要があります。SDL、OpenGL などはバックエンドと呼ばれます。 (バックエンド)

  • SDL は、ウィンドウ オブジェクトの作成、ユーザー入力の処理などを担当します。
  • OpenGL は、グラフィックスの描画、シェーダーの設定、ユニフォーム変数の更新などを担当します。
  • imgui は、テキスト、ボタン、カラー ピッカーなどの GUI 要素の作成とレンダリングを担当します。

ImGui の使用は非常に簡単です。ImGui のソース コード ファイルを自分のプロジェクトに追加し、適切なバックエンド (glfw や SDL、OpenGL や DirectX など) を選択するだけで、さまざまなコントロールの描画を開始できます。そして窓。

ダウンロード

GitHub に移動して https://github.com/ocornut/imgui をダウンロードします

ダウンロードが完了すると、次のような ImGui のディレクトリ構造が表示されます。

イムグイ/

  • backends/ バックエンド フォルダーには、さまざまなプラットフォームとレンダラーの実装コードが含まれています

  • Examples/ example フォルダーには、ImGui を使用したさまざまなサンプル プログラムが含まれています

  • misc/その他のフォルダー (いくつかの補助ツールと拡張モジュールを含む)

  • imconfig.h 構成ファイル。ImGui の一部のデフォルト設定を変更するために使用できます。

  • imgui.cpp/imgui.h ImGui のコア ソース コード ファイル。プロジェクトに追加する必要があります。

  • imgui_demo.cpp/imgui_demo.h ImGui デモ ソース コード ファイル (さまざまなコントロールやウィンドウのサンプル コードを含む)

  • imgui_draw.cpp/imgui_draw.h ImGui の描画ソース コード ファイル。さまざまなグラフィック要素のレンダリングを担当します。

  • imgui_internal.h ImGui の内部ヘッダー ファイル。いくつかの高度な機能と実装の詳細が含まれています。

  • imgui_tables.cpp/imgui_tables.h テーブルの作成と管理の機能を提供する ImGui のテーブル ソース コード ファイル

  • imgui_widgets.cpp/imgui_widgets.h 各種コントロールの作成・管理機能を提供する ImGui のコントロールソースコードファイル

  • imstb_rectpack.h/imstb_textedit.h/imstb_truetype.h 長方形パッキング、テキスト編集、フォント レンダリング用のサードパーティ ライブラリ ファイル

使用

独自のプロジェクトで ImGUI を使用するには、次のものが必要です。

  1. ルート ディレクトリ.cpp内のすべてのファイルを.h自分のプロジェクトにコピーします
  2. glfw適切なバックエンドの組み合わせを選択します。opengl

次に、glfwとopenglをバックエンドとしてImGUIのサンプルプロジェクトを作成します(cmake+MinGWでコンパイル)

私が構築したプロジェクトを使用できます: https://gitcode.net/m0_46079750/imguitemplate

まずプロジェクトのディレクトリ構造を作成します。

画像-20230624211039887 ここに画像の説明を挿入
├─lib
│  ├─glfw  # glfw可以自己去官网下载、编译
│  └─imgui
│      └─backend
└─src
  • lib は必要なライブラリ ファイルを示します。2 つのライブラリが必要です。1 つは glfw、もう 1 つは imgui
  • src は独自のソース コード ファイルです

glfw は公式 Web サイトにアクセスして自分でダウンロードしてコンパイルすることも、私のプロジェクトに直接コピーすることもできます

lib に imgui フォルダーを作成し、いくつかの h および cpp ファイルを imgui のルート ディレクトリにコピーします。

lib/imgui ディレクトリは次のとおりです。

画像-20230624211846983

次に、次のように、imgui プロジェクトのバックエンドで使用されるいくつかのファイルをlib/imgui/backend自分のプロジェクトのフォルダーにコピーします。

画像-20230624211931065

最後に、imgui プロジェクト内のサンプルをコピーして、src フォルダーに入れて使用します (ここでは glfw+opengl の組み合わせを使用しているので、次の例を使用します)

画像-20230624212521272

この例の main.cpp ファイルを src フォルダーにコピーするだけで、最終的なプロジェクト構造は次のようになります。

ImGUITemplate
├─lib
│  ├─glfw
│  └─imgui
│      │  imconfig.h
│      │  imgui.cpp
│      │  imgui.h
│      │  imgui_demo.cpp
│      │  imgui_draw.cpp
│      │  imgui_internal.h
│      │  imgui_tables.cpp
│      │  imgui_widgets.cpp
│      │  imstb_rectpack.h
│      │  imstb_textedit.h
│      │  imstb_truetype.h
│      │  LICENSE.txt
│      │
│      └─backend
│              imgui_impl_glfw.cpp
│              imgui_impl_glfw.h
│              imgui_impl_opengl3.cpp
│              imgui_impl_opengl3.h
│              imgui_impl_opengl3_loader.h
│
└─src
        main.cpp

次に、cmakelists.txt を書き込みます。

cmake_minimum_required(VERSION 3.10)
project(imguiTmpl)

set(CMAKE_CXX_STANDARD 11)

include_directories(lib/glfw/include
                    lib/imgui
                    lib/imgui/backend
        )
link_directories(
        lib/glfw/lib
)

file(GLOB_RECURSE IMGUI_SRCS lib/imgui/*.cpp)

add_executable(imguiTmpl WIN32 src/main.cpp ${IMGUI_SRCS}) #添加WIN32参数就不会显示控制台界面了
target_link_libraries(imguiTmpl glfw3.a opengl32)  # 链接库文件

最後に、cmakeを使用してプロジェクトをビルドします

実行例は次のとおりです。

画像-20230624213435915

おすすめ

転載: blog.csdn.net/m0_46079750/article/details/131366874