一、ImGui简介
Dear ImGui 是一个适用于 C++ 的无膨胀图形用户界面库。
Dear ImGui 旨在实现快速迭代,并使程序员能够创建内容创建工具和可视化/调试工具(而不是面向普通最终用户的 UI)。
ImGUI自身不能创建窗口,需要使用Win32API或glfw或SDL等工具来创建窗口,另外需要使用OpenGL或DirectX、vulkan用于渲染图形等,glfw、OpenGL等均被称为后端(backends)
glfw负责创建窗口对象,处理用户输入等
OpenGL负责绘制图形,设置着色器,更新uniform变量等
imgui负责创建和渲染GUI元素,如文本,按钮,颜色选择器等
ImGui的使用方法很简单,只需要将ImGui的源码文件添加到自己的项目中,然后选择一个合适的后端(例如glfw或SDL,OpenGL或DirectX),就可以开始绘制各种控件和窗口了。
二、ImGUI目录结构
ImGui的目录结构如下:
imgui/
backends/ 后端文件夹,包含了不同平台和渲染器的实现代码
examples/ 示例文件夹,包含了各种使用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 第三方库文件,用于矩形打包、文本编辑和字体渲染
三、准备工作
3.1 安装编译器
下载网址 WinLibs - GCC+MinGW-w64 compiler for Windows
下载完成后将mingw64放到硬盘上的某个位置,例如D:\mingw64,然后把D:\mingw64 添加到系统的PATH变量中。
3.2 安装CMake
下载网址 Download CMake
可以直接下载安装程序,省事
也可以下载ZIP文件并解压到硬盘里,例如D:\cmake-3.29.3-windows-x86_64,然后把D:\cmake-3.29.3-windows-x86_64\bin添加到系统的PATH变量里。
3.3 下载glfw
下载地址 Releases · glfw/glfw · GitHub 或 Download | GLFW 我使用的是glfw-3.4.bin.WIN64.zip
3.4 下载imgui
四、项目准备
4.1 项目目录
在D:\\CMakeTest目录里建立 imgui目录
并在imgui目录里建立lib 和 src 两个目录
4.2 复制glfw文件
把glfw-xx.bin.WIN64.zip压缩包中的include 和 lib-mingw-w64 解压到lib\glfw目录中去
4.3 复制 imgui 文件
4.3.1把imgui-x.xx.zip 压缩包中的.h .cpp文件解压到lib\imgui 目录中去
4.3.2 在lib\imgui目录中建立backend目录,
把imgui-x.xx.zip 压缩包backends里的
imgui_impl_glfw.h
imgui_impl_glfw.cpp
imgui_impl_opengl3
imgui_impl_opengl3
imgui_impl_opengl3
等5个文件复制到 lib\imgui\backends目录里。
4.4 复制示例文件
把imgui-x.xx.zip 压缩包examples\example_glfw_opengl3里的 main.cpp文件复制到D:\CMakeTest\imgui\src目录里。
4.5 建立CMakeLists.txt文件
文件内容如下 :
cmake_minimum_required(VERSION 3.10)
project(imguiTmpl)
set(CMAKE_CXX_STANDARD 11)
include_directories(lib//glfw//include
lib//imgui
lib//imgui//backends
)
link_directories(lib//glfw//lib-mingw-w64)
file(GLOB_RECURSE IMGUI_SRCS lib//imgui//*.cpp)
add_executable(imguiTest WIN32 src//main.cpp ${IMGUI_SRCS}) #添加WIN32参数就不会显示控制台界面了
target_link_libraries(imguiTest glfw3.a opengl32) # 链接库文件
五、构建编译
5
.
1
打开
CMD
命令窗口,并定位到
d:\CmakeTest\Test1
目录
5
.
2
配置并构建系统
cmake -
S . -B ./build -G “MinGW Makefiles”
5.3 编译链接项目
cmake --build ./build
5.4 运行测试
进入build目录,双击imimguitest.exe 运行测试即可