GUI开发环境搭建配置——ImGui篇

ImGui是什么?

Dear ImGui 是 ImGui(Immediate Mode GUI)的一个流行实现,由 Omar Cornut 开发和维护。它是一个轻量级、高效的即时模式图形用户界面库,专为集成到游戏引擎、实时应用程序和工具中而设计。
Dear ImGui 的设计理念是简单、快速和可扩展,因此它在游戏开发、调试工具、原型设计等领域非常受欢迎。

ImGui下载

GitHub 仓库:https://github.com/ocornut/imgui
Dear ImGui

ImGui配置开发环境

首选Windows操作系统,我用的是Visual Studio 2022,建立ImGui开发环境非常简单,只要将imgui首目录下的全部头文件和源文件复制到自己的项目里,然后根据需要在backends文件夹下复制自己需要的文件,所以这就是一个源码库。
难道你就不觉得这种方式很low吗?每建一个项目就要重新复制一遍,每加一组新的组件又要去选择复制,操作既繁琐又费空间。因此,我要给出另一个方式。
新建一个空项目,项目属性——配置选择:“所有配置” 平台选择:“所有平台”;
找到C/C++ - 常规 - 附加包含目录:添加上述两个文件夹路径;
如图,新建一个main.cpp文件,在源文件之下再新建一个筛选器imgui(名称自己随便写)。
图1

imgui首目录的5个cpp文件全拖到筛选器imgui下
图2

稍微解释一下,筛选器下表示的是引用的文件,并不会复制文件到项目,引用源文件的目的是需要编译这些源文件。
好了,现在就可以使用测试代码了。就在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博客主页——南岩•凛汀
有什么问题请随时评论交流,感谢大家的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值