IMGUI 系统 - Dear ImGUI

简单介绍

因为我在写 LearnGL 系列笔记的时候,发现没有 GUI 可以用,好蛋疼,然后在 GitHub 上找到一个叫:Dear ImGui,这个IMGUI系统对我来说,太太太完美了,它是用 C++ 编写的一个 IMGUI 系统。

Unity 也有使用

看了下面的 案例截图 你会发现,原来前几年看到的一些大厂的各种 DEMO,或是一些软件原来就是用 Dear ImGui 制作的,Vulkan、OpenGL的一些示例,还有如果你使用过 Unity 的旧版的 IMGUI 系统,你就会发现 Unity 的 IMGUI 接口与 Dear ImGui 的非常类似,因为它们都是按 IMGUI 范例设计的,所以也就说,如果你用过 Unity 旧版 IMGUI 你肯定很容易接受 Dear ImGui 的接口。

现在库名字的理解

Git Hub 上 Dear ImGui 的简述:

Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies

然后我去下载 master 分支,压缩包也就 1.4 MB,基本都是纯代码,编译后更小,难怪它用 Bloat-free 来形容,非常精简的一个GUI 库。

名字历史

What is this library called? 中可得知,作者是从 2014 年开始编写的库,当时没想好名字,就暂时用了 ImGui 的名字。但是 IMGUI 这个术语很早之前就有提出来,IMGUI == Immediate-Mode Graphical User Interface,即时模式的图形用户接口,它是 Casey Muratori 提出来的,如果你想了解 IMGUI 范例,可以查看:http://www.johno.se/book/imgui.htmlhttp://mollyrocket.com/861 或是在下面提到的 FAQ 中的更多的链接,或是 wiki 中的 Paradigm。Unity 用它来实例了自己的 IMGUI 范例。所以作者为了减少歧义,他在 2015.12 将库名改为 Dear ImGui(不是 ImGui,也不是IMGUI)。


入门步骤建议

  • 先看 master 的 README.txt,先了解大概介绍
  • 再看 example 下的 README.txt
  • 再倒回看 master 下的 imgui.cpp 的代码、注释,作为程序开发主要看:PROGRAMMER GUID 的部分
  • 再看看 FAQ.md 部分,了解常见的问题
  • 这时差不多可以开始将 Dear ImGui 引入你的项目了,先去 example 下找对应的 实现窗体 + 渲染平台
    • 找到适合你的窗体、渲染平台的,点击去查看 demo
    • 例如,我使用的是 GLFW 窗体库 + OpenGL 3+ 版本的:example_glfw_opengl3,参考工程使用即可

其他资料

后续更多功能的查阅,可以查看他的 git/wiki:https://github.com/ocornut/imgui/wiki

其中有一些不错的小部件:useful-widgets–references

也一些不错的文章:articles-about-dear-imgui

扫描二维码关注公众号,回复: 14217218 查看本文章

我自己粗略阅读过,也不是每个都不错,下面将一些我自己看过觉得不错的博客都列出来:

英文的视频:

英文的文章:

日语的 qiita 上的文章:

如果你想用 Dear ImGui 来制作软件,或是游戏引擎的GUI,可以使用他目前的 docking 分支的。

未来作者会合并到 master 分支,现在还在完善中。

值得一提的 Upcoming 内容:

  • 而且他的 docking 和一般的 docking 还不一样,可以跨窗体。
  • 他的 multiple viewport 也不一般,可以将窗体内的内容绘制到窗体外,即:ImGuiWindow 可以绘制到 host window 外。
  • 他的 table 也是做的强大又美观

Dear ImGui docking,可以查看:
https://ruurdsdevlog.wordpress.com/2020/03/07/c-desktop-application-with-dear-imgui/

docking 的可以再查考 wiki 上的各个推荐的 blog 或是 video

后面如果要给图片做一个资源管理,或是 材质系统管理,都需要了解如何加载图片

在这里插入图片描述

当然这些内容现在还没有引入到 master 分支,还在完善开发中,所以如果感兴趣可以 watch 持续关注这位大神 git。


Showcase Screen Snapshot - 案例截图

为了提起你对 Dear ImGui 的兴趣我将一些截图放上来。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/107053484
今日推荐