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设计 这个程序 ...
随机推荐
- Msmq设计文档(赋源代码)
Msmq设计文档(赋源代码) Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: ...
- 【柚子木字幕組】【BBC】 Are Our Kids Tough Enough? Chinese School 英國的孩子足夠堅強嗎?中式教學
https://www.youtube.com/watch?v=ypT6c4NZ6jk 最近很火的一个bbc纪录片 讲的是英国学校请几个中国老师到他们那里试行中国教育的故事 作为学习英文的素材很不错
- zstack快速安装文档
1.环境准备 1.1 准备软件工具 系统镜像 ZStack-x86_64-DVD-2.1.1.514.iso Zstack安装包 ZStack-installer-2.1.1.514.bin http ...
- SpringCloud初体验:六、利用 Sleuth 和 Zipkin 给微服务加上链路监控追踪查看功能
首先:装上 Zipkin 服务,收集调用链跟踪数据,体验时装在了本机docker上, 方便快捷 docker run -d -p : openzipkin/zipkin 安装后访问地址也是 9411端 ...
- Django安装与介绍
安装 Django是以Python为语言环境的,所以要先确保计算机上已经安装了Python. Linux ubuntu: sudo pip install Django==1.11.7 安装中指定了版 ...
- SpringCloud统一配置之使用配置
配置的读取方式在上一篇文章中有提到. 取到值之后赋值给静态类里的静态变量. 因为SpringCloud项目启动的时候会把所有的api都执行一遍(相当蛋疼),所以这里直接就可以写一个方法进行赋值. 代码 ...
- cookie和session得区别
1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据. 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间. ...
- bzoj4271: chemistry 化学
给定点数n<=500,无标号,度<=4,无根树计数 预处理 无标号,孩子数<=3的有根树个数g 无标号,含k棵树,孩子数<=3的有根树森林个数s[k] 考虑大小为n的无根树的重 ...
- Eclipse/MyEclipse连接Hadoop集群出现:Unable to ... ... org.apache.hadoop.security.AccessControlExceptiom:Permission denied问题
问题详细如下: 解决办法: <property> <name>dfs.premissions</name> <value>false</value ...
- python-appium520-3引入unittest,编写自动化用例
unittest是python的测试框架,和junit相似. test.py import unittest class Apptest(unittest.TestCase): def setUp(s ...