什么是 ImGui
IMGUI (Immediate Mode Graphical User interface),下载地址。
ImGui 是一种比较新颖的 GUI 实现模式,适用于显示区域实时刷新的程序里面。在 Simple2D 上实现 GUI,如果要自己编写一个 GUI 库,这是一件很困难的事。比较简单的方法就是使用第三方的库,而 ImGui 就是一个 GUI 库。
之所以使用 ImGui,是因为很简单地将它嵌入到 Simple2D 中,非常简单!!
ImGui 项目简析
点击上面的链接下载好 ImGui 后,解压得到一个 imgui-master 的文件夹。进入 examples 文件夹后,点击 imgui_examples_msvc2010.sln 用 VS 打开项目。在资源管理器面板有 5 个项目:
分别是 OpenGL 和 DirectX 使用 ImGui 的例子项目,主要是告诉你如何使用 ImGui。Simple2D 使用的是 OpenGL3,所以将 opengl3_example 设为启动项目,最后编译运行,得到下面的窗口:
ImGui Demo 窗口中包含了所有关于如何使用 ImGui 的演示,通过这些演示可以快速的上手 ImGui。
那么如何将 ImGui 嵌入到项目中呢?展开项目 opengl3_example:
图中分为三个部分:
1、第一个方框是 ImGui 的实现,可以阅读 imgui_demo.cpp 源码学习 ImGui 的使用。
2、第二个方框是则是渲染代码,你可以使用 DirectX 进行渲染,或是使用 OpenGL 进行渲染,ImGui 的渲染底层就在这里实现。也就是说,要想将 ImGui 嵌入到项目中,就要实现这部分的渲染代码。其实 ImGui 都帮你准备好了,没有额外需求的话,直接将这两个文件搬进项目即可。
3、最后一部分是主函数,就是窗口的实现部分,而 ImGui 使用的是 GLFW 库,这在前一篇文章中已经说了。
后续将对第二个方框的代码进行一些小小的改动,以便 ImGui 能够简易的嵌入到 Simple2D 中。
源码下载:Simple2D-14.rar