Win7 VS2017编译bgfx图形API
官方的编译指南在这个页面
https://bkaradzic.github.io/bgfx/build.html#quick-start
目前的版本编译比较简单,下载3个项目,放于同级目录下
https://github.com/bkaradzic/bgfx
https://github.com/bkaradzic/bimg
https://github.com/bkaradzic/bx
进入bgfx目录下,建立vs2017.bat文件,内容如下并运行,如果是其他版本,比如vs2015就换成其他的
..\bx\tools\bin\windows\genie.exe --with-tools --with-examples --with-shared-lib vs2017
会生成.build目录及工程,之后打开
bgfx\.build\projects\vs2017\bgfx.sln
就可以了
如果想编译SDL2版本
..\bx\tools\bin\windows\genie.exe --with-sdl --with-tools --with-examples --with-shared-lib vs2017
然后环境变量和工程中加入SDL的include和lib目路就行了。
为什么使用SDL2,因为bgfx自带的例子似乎不能支持手柄,至少我这破北通手柄用不了,而SDL2,GFLW,SFML甚至DInput都能正常识别。
有趣的是bgfx这个SDL2,初始化时只使用了SDL_INIT_GAMECONTROLLER,而没有Video和Audio,并且跟踪源码可以看到,图形驱动还是用的bgfx自己的DX,OpenGL等,SDL2这里似乎只是接入了手柄和消息循环等处理。
所以音频这部分,我在考虑怎么办,是用SDL Mixer还是用SFML,SFML一般音频处理比较方便,并且是C++源码,可读性高,还能直接用Buffer得到整个音频解码后的采样,做个FFT比较简单。
SDL Mixer虽然自带的例子也有波形显示,但是是在回调函数中实现的,虽然回调时用较少的实时buf占用内存更少,SFML的Buffer加载整首歌可能会占20至100 MB,视音频长度而定,但是如果做其他处理,比如音频编辑需要整首的,就方便很多,
并且这年头内存根本不是问题。唯一的问题是,SFML可能无法做音频实时合成,因为他的音频缓冲默认似乎是2秒,网上又没搜到实时合成的例子,找到一个正弦波合成的,声音听起来断断续续的,我的合成器工程可能移植不过来。
Win7 VS2017编译bgfx图形API的更多相关文章
- Win7 VS2017编译Audacity2.1.3
最近比较热衷折腾大型开源软件编译,因为在逐渐用开源软件替换盗版软件,除去盗版用着不安全的原因外,主要还是因为开源软件有源码,可以学习研究,另外就是体积小. 像Matlab每次装完都用不上什么功能,体积 ...
- Win7 VS2017编译Blender2.79
去年在VS2013环境编译过一次,重装系统后换了VS2017,正好刚编译完Godot3.0.2,顺手把Blender也编译了吧. 官方Windows下编译指南 https://wiki.blender ...
- Win7 VS2017编译magnum及例子
magnum是一个开源的图形中间件 Lightweight and modular C++11/C++14 graphics middleware for games and data visuali ...
- Win7 VS2017编译PBR渲染引擎google filament
按照官方说明 https://github.com/google/filament 前置工具包 Windows 10 SDKVisual Studio 2017Clang 6Python 3.7Git ...
- Win7 VS2017编译Godot3.0.2和2.1.4
千呼万唤屎出来,Godot终于发布3.0版本的源码了,今天是2018年3月17日,自去年接触过后,一直没事就刷刷Gayhub,看看3.0什么时候更新,刷了一年也没结果. 今天上Youtube无意中搜了 ...
- bgfx入门练习1——切换图形API驱动模式DX与OpenGL
翻了下上次编译bgfx是去年2月份的事了,最近正好想试试DX,OpenGL双驱动,看Urho3D和Klayge光封装就头痛,人又懒,写OpenGL时也基本glfw,于是想到bgfx,不如再试试. 发现 ...
- 新图形API为unity5 带来了什么&下一代新图形API的好处
西瓜的演讲ppt翻译+解释+其他: wolf96 在最基本的层面上,这些新api是为了改进CPU性能和效率,通过:减少CPU渲染瓶颈的情况,提供更多可预测和稳定的驱动的行为,给应用程序更多控制,就像在 ...
- 32位win7+vs2008编译mysql 5.6.22源码并安装
以下这部分安装说明是来自http://www.2cto.com/database/201407/316681.html的win7+vs2010源码编译mysql,文章最后会说明用vs2008编译遇见的 ...
- WebGPU学习(五): 现代图形API技术要点和WebGPU支持情况调研
大家好,本文整理了现代图形API的技术要点,重点研究了并行和GPU Driven Render Pipeline相关的知识点,调查了WebGPU的相关支持情况. 另外,本文对实时光线追踪也进行了简要的 ...
随机推荐
- CVE-2017-16995 漏洞利用
Ubuntu本地提权(CVE-2017-16995)漏洞复现 在 ichunqiu 看到的环境(https://www.ichunqiu.com/course/61487),觉得有意思就记录一下. 实 ...
- 详解卷积神经网络(CNN)
详解卷积神经网络(CNN) 详解卷积神经网络CNN 概揽 Layers used to build ConvNets 卷积层Convolutional layer 池化层Pooling Layer 全 ...
- Navicat工具怎么连接oracle数据库
当我们安装完oracle数据库之后,我们会想着用可视化工具连接,navicat是我们常用的可视化连接数据库的工具 当我们安装完oracle数据库的时候,我们需要先启动他 先把相应的服务启动 保证这两个 ...
- 虚拟机安装centOs+网络配置(完整说明)
1.新建虚拟机(标准) 选择 (我以后下安装操作系统) 选择Linux 操作系统 版本为CentOS(32位) 虚拟机的名称和位置任意 磁盘容量如下即可 设 ...
- 200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?
[视频&交流平台] àSpringBoot视频:http://t.cn/R3QepWG à SpringCloud视频:http://t.cn/R3QeRZc à Spring Boot源 ...
- 创建列表明细应用1-使用fragment
笔记自<Android编程权威指南第二版> 第七章,创建一个列表明细应用 fragment是一种控制器对象,activity可委派它完成一些任务,这些任务通常就是管理用户界面.(管理用户界 ...
- Maven Return code is: 401
maven 打包到仓库 需要配置认证: setting.xml <server><id>releases</id><username>admin< ...
- K8s部署使用CFSSL创建证书
证书的编码格式 PEM(Privacy Enhanced Mail),通常用于数字证书认证机构(Certificate Authorities,CA),扩展名为.pem, .crt, .cer, 和 ...
- JS 正则表达式基本语法(精粹)
1.正则表达式基本语法 两个特殊的符号'^'和'$'.他们的作用是分别指出一个字符串的开始和结束. 例子如下: "^The":表示所有以"The"开始的字符串( ...
- A除以B
1017 A除以B (20)(20 分) 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中 ...