什么是 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

最新文章

  1. 使用delphi+intraweb进行微信开发1~4代码示例
  2. JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
  3. IOS系列swift语言之课时六
  4. jekyll安装的斗智斗勇
  5. play for scala 实现SessionFilter 过滤未登录用户跳转到登录页面
  6. IE11之F12 Developer Tools--DOM Explorer
  7. C++调用GDAL库读取并输出tif文件,并计算斑块面积输出景观指数:CSD
  8. fedora gnome extension
  9. 二、UITableView和它的亲戚们
  10. JS判断是不是Decimal类型(正则实现)
  11. VB 基础语法以及教学视频
  12. LWP::UserAgent介绍3 -> cookie设置
  13. Python中List和Tuple类型
  14. mysql log and lock
  15. 为什么重写equals一定要重写hashCode?
  16. laravel中请求用例$request可用的一些方法小结
  17. hibernate06--参数的绑定
  18. CentOS防火墙配置
  19. [C++]指针与多级指针(图解)
  20. linux shell cut 命令

热门文章

  1. Json.NET Updates: Merge, Dependency Injection, F# and JSONPath Support
  2. xml时间配置
  3. zmediaboard-Hi3518参数及配置
  4. vue-progressbar 知识点
  5. Kindle一周使用感受
  6. 大快搜索DKhadoop集群管理平台添加节点的步骤说明
  7. MySQL的结构图
  8. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
  9. oracle 恢复备份
  10. appium 3-31603调试分析方法