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

Simple2D-16(音乐播放器)ImGui 库介绍的更多相关文章

  1. Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)

    在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...

  2. 02 Vue介绍与安装,指令系统 v-*、音乐播放器

    VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...

  3. Simple2D-14(音乐播放器)简介

    接下来文章中,会介绍一个简单的程序——音乐播放器.通过编写一个音乐播放器在 Simple2D 中加入两个库:音频库 bass 和界面库 ImGui. 下面是音乐播放器的预览图: 播放器的功能比较简单, ...

  4. Simple2D-19(音乐播放器)播放器的源码实现

    使用 BASS 和 ImGui 实现音乐播放器 MusicPlayer. 将播放器和一个文件夹关联起来,程序刚开始运行的时候就从该文件夹加载所有音频文件.而文件夹的路径则保存在配置文件中,所以程序的第 ...

  5. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  6. STM32实现Airplay音乐播放器

    AirPlay是苹果公司推出的一套无线音乐解决方案,我们手里的iPhone.iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay,但是支持AirPlay功能的音响设备 ...

  7. android 音乐播放器

    本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...

  8. 【Linux_Fedora_应用系列】_1_如何安装音乐播放器和mp3解码

    因为安装环境的不同,Fedora在安装后会安装不同的软件包.通常在安装的时候有多种选择: 1.桌面环境: 适合个人日常使用,安装包含办公软件(Fedora 默认安装Open Office).娱乐影音软 ...

  9. iOS开发拓展篇—音频处理(音乐播放器3)

    iOS开发拓展篇—音频处理(音乐播放器3) 说明:这篇文章主要介绍音频工具类和播放工具类的封装. 一.控制器间数据传递 1.两个控制器之间数据的传递 第一种方法:self.parentViewCont ...

  10. pygame系列_原创百度随心听音乐播放器_完整版

    程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...

随机推荐

  1. mysql 严格模式 Strict Mode说明

    1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统则是my.ini)文件 在sql_mode中增加STRICT_TRANS_TABLES则表示开启严 ...

  2. 【转】每天一个linux命令(30): chown命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者 ...

  3. Yarn、MapReduce、spark、storm的关系

    YARN并不是下一代 MapReduce (MRv2),下一代 MapReduce 与第一代 MapReduce (MRv1)在编程接口.数据处理引擎(MapTask和ReduceTask)是完全一样 ...

  4. c# ProgressBar进度条方向和美观

    protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style | ...

  5. go test 初始化--- TestMain的使用

    go test 功能,提高了开发和测试的效率. 有时会遇到这样的场景: 进行测试之前需要初始化操作(例如打开连接),测试结束后,需要做清理工作(例如关闭连接)等等.这个时候就可以使用TestMain( ...

  6. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  7. 从Qt谈到C++(一):关键字explicit与隐式类型转换

    转载:果冻虾仁 提出疑问 当我们新建了一个Qt的widgets应用工程时.会自动生成一个框架,包含了几个文件. 其中有个mainwindow.h的头文件.就是你要操纵的UI主界面了.我们看看其中的一段 ...

  8. [转]MSSQL 判断临时表是否存在

    原文来自:http://www.cnblogs.com/szfhquan/p/4229150.html 方法一: 1 if exists (select * from tempdb.dbo.sysob ...

  9. GC 提前晋升

    如果Survivor 空间不足, 那么从 Eden 存活下来的和原来在 Survivor 空间中不够老的对象占满 Survivor 后, 就会提升到老年代, 可以看到这一轮 Minor GC 后老年代 ...

  10. [UE4]C++ STL总结

    STL概述 STL (Standard Template Library, 标准模板库) 是惠普实验室开发的一系列软件的统称.主要核心分为三大部分:容器(container).算法(algorithm ...