ImGui是什么?
Dear ImGui 是 ImGui(Immediate Mode GUI)的一个流行实现,由 Omar Cornut 开发和维护。它是一个轻量级、高效的即时模式图形用户界面库,专为集成到游戏引擎、实时应用程序和工具中而设计。
Dear ImGui 的设计理念是简单、快速和可扩展,因此它在游戏开发、调试工具、原型设计等领域非常受欢迎。
ImGui下载
GitHub 仓库:https://github.com/ocornut/imgui
ImGui配置开发环境
首选Windows操作系统,我用的是Visual Studio 2022,建立ImGui开发环境非常简单,只要将imgui首目录下的全部头文件和源文件复制到自己的项目里,然后根据需要在backends文件夹下复制自己需要的文件,所以这就是一个源码库。
难道你就不觉得这种方式很low吗?每建一个项目就要重新复制一遍,每加一组新的组件又要去选择复制,操作既繁琐又费空间。因此,我要给出另一个方式。
新建一个空项目,项目属性——配置选择:“所有配置” 平台选择:“所有平台”;
找到C/C++ - 常规 - 附加包含目录:添加上述两个文件夹路径;
如图,新建一个main.cpp文件,在源文件之下再新建一个筛选器imgui(名称自己随便写)。
imgui首目录的5个cpp文件全拖到筛选器imgui下
稍微解释一下,筛选器下表示的是引用的文件,并不会复制文件到项目,引用源文件的目的是需要编译这些源文件。
好了,现在就可以使用测试代码了。就在examples下找到example_null(最小测试用例)文件夹里面的源文件内容复制到刚刚新建的main.cpp里,生成并成功运行说明配置好了。
还记得backends文件夹吗?这里面也是用源文件的,只不过是要按需选择的,需要哪个就引用哪个呗。还有需要链接库文件的情况,方法和我前面写的wxWidgets的配置过程一样,就不再赘述了。
还没完,做开发要有耐心,现在环境是搭好了,但是你每做一个新项目都要这么操作一遍吗?所以,现在我们要建立一个模板,在vs窗口菜单栏进入项目 - 导出模板 - 项目模板 - 下一步,模板名称可写imguiTemplate,点击完成,模板就做好了,以后就可以从这个模板创建新项目了。
官方提供的最小用例
#include "imgui.h"
#include <stdio.h>
int main(int, char**)
{
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
// Build atlas
unsigned char* tex_pixels = nullptr;
int tex_w, tex_h;
io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h);
for (int n = 0; n < 20; n++)
{
printf("NewFrame() %d\n", n);
io.DisplaySize = ImVec2(1920, 1080);
io.DeltaTime = 1.0f / 60.0f;
ImGui::NewFrame();
static float f = 0.0f;
ImGui::Text("Hello, world!");
ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
ImGui::ShowDemoWindow(nullptr);
ImGui::Render();
}
printf("DestroyContext()\n");
ImGui::DestroyContext();
return 0;
}
写在最后
至此,imgui的开发环境配置步骤已经完成了,更多内容可前往以下我的博客主页查找
个人知乎主页——南岩亦凛汀
个人CSDN博客主页——南岩•凛汀
有什么问题请随时评论交流,感谢大家的支持!