Simple2D-17(音乐播放器)嵌入 ImGui 库
要把 ImGui 应用到项目中,先拷贝方框中的源文件到项目:

这些文件是 ImGui 的实现源码,可作为第三方库新建一个文件夹进行放置。
接下来是渲染部分的代码,项目可能使用 DirectX 或 OpenGL 进行渲染。Simple2D 使用的是 OpenGL3,所以打开 examples -> opengl3_example 文件夹,找到方框中的两个文件:

一般情况下,拷贝这两个文件到项目中即可。不过笔者打算使用一个类 ImGuiOpenGLContext 整理这两个文件的代码,做了少许的改动。最后,使用类 ImGuiOpenGLContext 即可:
//......
ImGuiOpenGLContext imguiContext(window);
while ( glfwWindowShouldClose(window) == false ) {
glClearColor(, , 0.3, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
imguiContext.BeginFrame();
// 渲染指令
// ImGui 绘制指令
imguiContext.EndFrame();
glfwSwapBuffers(window); /* 交换颜色缓冲 */
glfwPollEvents(); /* 检查有没有触发什么事件 */
}
创建 ImGuiOpenGLContext 对象,然后在 BeginFrame() 和 EndFrame() 函数间进行界面绘制的指令即可。最后调试 ImGui 能否正常工作,添加以下界面绘制代码:
ImGui::Begin("Window");
ImGui::Text("Hello ImGui");
ImGui::End();
结果显示出一个窗口,表示 ImGui 成功嵌入到项目中了:

详细内容请参考源码。
源码下载:Simple2D-14.rar
Simple2D-17(音乐播放器)嵌入 ImGui 库的更多相关文章
- Simple2D-16(音乐播放器)ImGui 库介绍
什么是 ImGui IMGUI (Immediate Mode Graphical User interface),下载地址. ImGui 是一种比较新颖的 GUI 实现模式,适用于显示区域实时刷新的 ...
- 使用react native制作的一款网络音乐播放器
使用react native制作的一款网络音乐播放器 基于第三方库 react-native-video设计"react-native-video": "^1.0.0&q ...
- Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)
在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...
- Simple2D-14(音乐播放器)简介
接下来文章中,会介绍一个简单的程序——音乐播放器.通过编写一个音乐播放器在 Simple2D 中加入两个库:音频库 bass 和界面库 ImGui. 下面是音乐播放器的预览图: 播放器的功能比较简单, ...
- Simple2D-19(音乐播放器)播放器的源码实现
使用 BASS 和 ImGui 实现音乐播放器 MusicPlayer. 将播放器和一个文件夹关联起来,程序刚开始运行的时候就从该文件夹加载所有音频文件.而文件夹的路径则保存在配置文件中,所以程序的第 ...
- iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...
- 命令行音乐播放器 CMus
自从接触到 CMus (C* Music Player) 这个工作在终端里的音乐播放器后,在 Linux 环境里就很少使用 GUI 音乐播放器播放本地音乐文件了.它消耗资源少使用方便,对中文的支持也不 ...
- STM32实现Airplay音乐播放器
AirPlay是苹果公司推出的一套无线音乐解决方案,我们手里的iPhone.iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay,但是支持AirPlay功能的音响设备 ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告三、四
3 对现有系统的分析 由于本次可行性分析主要是建立在团队自行实现一个音乐软件的目标上,并不是在一个现有系统的基础上开发改进的新系统.因此这里将分析一款市面上已经存在的音乐软件(以下称为W音乐),并为之 ...
- android 音乐播放器
本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...
随机推荐
- js实现表格行的动态加入------Day56
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/marSmile_tbo/article/details/36752655 现代页面通常都是用div+ ...
- FastAdmin 自己做的插件 SQL 有一个表没有生成成功
群里有群友问: 给插件建的install.sql 里有三个表,为啥会出现安装成功后没有错误提示,只生成了两个表的情况..这可能会是什么...原因 第一感觉和 FastAdmin 没有关系. 没生成表, ...
- asm数据文件迁移(asm–>asm)
rman迁移操作 [oracle@localhost oradata]$ rman target / Recovery Manager: Release 10.2.0.3.0 - Producti ...
- mySQL 教程 第3章 数据类型和数据完整性
准备数据库 创建练习数据库,以下实验都是在这个数据库中完成. 练习1:比较各种数值型 create table tmp1 ( id INT, name VARCHAR(25), deptId deci ...
- 实例直观解释sessionid的作用
有两个php页面,demo1.php与demo2.php.如果想要在demo1.php创建一个session需要在的demo2.php或者说其它页面都可以获取到设置的session的值,达到会话的功能 ...
- 导出pb模型之后测试的python代码
链接:https://blog.csdn.net/thriving_fcl/article/details/75213361 saved_model模块主要用于TensorFlow Serving.T ...
- linux vnc 安装
http://blog.csdn.net/mchdba/article/details/49306383
- c++开发环境搭建
>>>>>>>>>>>>>>>>>>>>>开发环境搭建<<&l ...
- Mac网络连接问题
场景:同一个网络,其他电脑和手机可以访问远程网络端口为443的网站,如博客园,唯独我的电脑不能访问 解决方法:查看路由器的子网掩码和DNS地址,将IP设置为手动,输入ip.子网掩码和DNS即可
- shell 7echo命令
echo用于字符串的输出 1. 显示普通字符串 #shell #!/bin/sh echo "Hello world" echo Hello world Hello world H ...