Simple2D-16(音乐播放器)ImGui 库介绍
什么是 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 库介绍的更多相关文章
- Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)
在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...
- 02 Vue介绍与安装,指令系统 v-*、音乐播放器
VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...
- Simple2D-14(音乐播放器)简介
接下来文章中,会介绍一个简单的程序——音乐播放器.通过编写一个音乐播放器在 Simple2D 中加入两个库:音频库 bass 和界面库 ImGui. 下面是音乐播放器的预览图: 播放器的功能比较简单, ...
- Simple2D-19(音乐播放器)播放器的源码实现
使用 BASS 和 ImGui 实现音乐播放器 MusicPlayer. 将播放器和一个文件夹关联起来,程序刚开始运行的时候就从该文件夹加载所有音频文件.而文件夹的路径则保存在配置文件中,所以程序的第 ...
- iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...
- STM32实现Airplay音乐播放器
AirPlay是苹果公司推出的一套无线音乐解决方案,我们手里的iPhone.iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay,但是支持AirPlay功能的音响设备 ...
- android 音乐播放器
本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...
- 【Linux_Fedora_应用系列】_1_如何安装音乐播放器和mp3解码
因为安装环境的不同,Fedora在安装后会安装不同的软件包.通常在安装的时候有多种选择: 1.桌面环境: 适合个人日常使用,安装包含办公软件(Fedora 默认安装Open Office).娱乐影音软 ...
- iOS开发拓展篇—音频处理(音乐播放器3)
iOS开发拓展篇—音频处理(音乐播放器3) 说明:这篇文章主要介绍音频工具类和播放工具类的封装. 一.控制器间数据传递 1.两个控制器之间数据的传递 第一种方法:self.parentViewCont ...
- pygame系列_原创百度随心听音乐播放器_完整版
程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...
随机推荐
- VdcEye manager
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011652271/article/details/24878335 VdcEye manager ...
- 修改Nginx的header伪装服务器
有时候为了伪装自己的真实服务器环境.不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!今天看了一下baidu.com的webserver感觉像是nginx修改的 ...
- Cenots7对lvm逻辑卷分区大小的调整
Cenots7对lvm逻辑卷分区大小的调整 (针对xfs和ext4不同文件系统) 1.支持的文件系统类型 特别注意的是: resize2fs命令 针对的是ext2.ext3.ex ...
- .Net和SqlServer的事务处理实例
1,SqlServer存储过程的事务处理一种比较通用的出错处理的模式大概如下:Create procdure prInsertProducts( @intProductId int, @chvProd ...
- ios获取安装的app
http://www.iphonedevsdk.com/forum/iphone-sdk-development/22289-possible-retrieve-these-information.h ...
- BASIC-11_蓝桥杯_十六进制转十进制
注意事项: 1.长数据注意选择long long类型,用%ldd输出,防止数据溢出; 示例代码: #include <stdio.h>#include <string.h>#i ...
- HTML5: input:file上传类型控制
ylbtech-HTML5: input:file上传类型控制 1. 一.input:file 属性返回顶部 一.input:file属性 属性值有以下几个比较常用: accept:表示可以选择的 ...
- java.lang.ClassNotFoundException: org.I0Itec.zkclient.exception.ZkNoNodeException 异常 如何处理
严重: Context initialization failed java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNo ...
- ubuntu 16.04 LTS 安装 teamviewer 13
背景介绍 由于需要做现场的远程支持,经协商后在现场的服务器上安装TeamViewer 以便后续操作. 本来以为很简单的一件事,谁知却稍微费了一番周折 :( 记录下来,希望提醒自己的同时也希望能够帮到 ...
- 【Codeforces】CF 2 B The least round way(dp)
题目 传送门:QWQ 分析 求结尾0的数量QwQ. 10只能是$ 2 \times 5 $,我们预处理出每个数因子中2和5的数量. 我们接着dp出从左上到右下的经过的最少的2的数量和最少的5的数量.两 ...