前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows下ImGui的快速使用介绍至项目建立(VS,DX11)

Windows下ImGui的快速使用介绍至项目建立(VS,DX11)

原创
作者头像
晨星成焰
发布2024-06-20 17:28:53
1810
发布2024-06-20 17:28:53
举报

阅读须知

本文建立在基于DX11下API的ImGui使用,如果是别的图形API我还未尝试,故其他API相关请参考阅读,并不一定适用

ImGui简介:

Dear ImGui是一个专为C++设计的无膨胀图形用户界面库(GUI),旨在提供一种快速、便捷的方式来创建内容创建工具和可视化/调试工具,而不是针对最终用户的UI设计。它被广泛应用于游戏引擎、实时3D应用程序、全屏应用程序、嵌入式应用程序或非标准操作系统功能的控制台平台等场景。Dear ImGui的特点包括独立于渲染系统和平台,无需特定的构建过程,只需将其核心文件添加到项目中即可。它还提供了多种后端支持,以便集成到不同的图形API和渲染平台中。

Dear ImGui的使用非常直观,例如,你可以轻松地在程序循环中调用其函数来创建文本、按钮、输入框和滑块等元素。它还允许你创建自定义窗口,包括带有菜单栏的窗口,以及在滚动区域中显示内容等。Dear ImGui的设计哲学是为了促进快速迭代和提高开发者的生产力,因此它缺乏一些在更高级库中常见的功能,但这正是它适用于快速原型和调试工具的原因之一。

Dear ImGui的社区活跃,有丰富的文档和教程可供参考,同时也提供了一个Discord服务器供开发者交流。此外,尽管它是一个开源项目,但也接受商业赞助以支持其持续发展和改进。

总的来说,Dear ImGui是一个强大而灵活的GUI库,适用于需要快速开发和测试的场景,如游戏开发、实时3D应用程序开发等。它的简单性和易用性使得开发者能够快速上手并利用其功能来提升开发效率

ImGui下载

前往github链接:

Dear ImGui

https://github.com/ocornut/imgui

下载压缩包并解压至任意目录,或任意方法,总之我们获得一个ImGui文件夹

打开其中的examples文件夹

运行Imgui_examples.sln

设置一个你感兴趣的图形api相关的使用例作为启动项目运行main文件基本上就宣告你的ImGui使用例跑起来了

但这些还不够,我们的目的是将其引入需要Imgui的项目

ImGui的简单引入

用VS新建一个空项目

在空项目目录新建一个文件夹ImGui

回到github下载的imgui文件夹根目录

为了方便

将选中文件全部拷贝到新建空项目下的ImGui文件夹

打开imgui文件夹下的backends文件夹

imgui_impl_dx11.cppimgui_impl_dx11.h,imgui_impl_win32.cpp,imgui_impl_win32.h

将选中文件同样拷贝到新建空目录下的ImGui文件夹

PS:如果是需要别的图形API环境渲染下的ImGui则拷贝对应的图形api头文件和cpp文件

所需文件如图所示:

你可以根据自己的需要酌情删除其中的一些文件以节省空间,不过为了方便使用建议还是不要动的好

打开空项目将其包含在项目中

新建一个头文件ImGuiAll.h

ImGuiAll.h

新建一个演示用的main文件

如果是为了方便简单的学习使用,可以打开之前于github上下载的

imgui\examples\example_sdl2_directx11

将里面的main.cpp的代码拷贝到自己演示用的main文件

修改其中的部分代码

main.cpp

运行截图:

如果不想要学习相关的示例可以像我一样删除多余的绘制代码

main.cpp

运行截图:

关于glfw以及vulkan和opengl3下的api渲染,以后接触到会更新相关的使用方法

目前如果是以上api则本文仅供参考 我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 阅读须知
  • ImGui简介:
  • ImGui下载
  • ImGui的简单引入
    • 在空项目目录新建一个文件夹ImGui
      • 新建一个头文件ImGuiAll.h
        • 新建一个演示用的main文件
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档