SDL 的介绍
SDL 可以给开发者提供面向 libSDL 的 API 编程,它的内部能解决多个平台的 OpenGL 上下文环境和窗口管理的问题。开发者只需要交叉编译这个库到各自的平台上,就可以达到一份代码运行到多个平台的目的了。FFmpeg 中的 ffplay 工具就是基于 libSDL 开发的,SDL 不单单可以渲染视频画面,也可以渲染音频。
但是对于移动开发者来讲,它也有一些缺点,比如使用 SDL 会牺牲一些更加灵活的控制,甚至某些场景下的功能实现不了。所以到底用不用 SDL,你可以根据实际需求去考量,但了解这个库是十分有必要的。
首先是安装 sdl2 库,我们可以通过命令行来安装。
brew install sdl2
安装后,可以使用命令来查看安装列表和安装路径。
brew list 查看安装列表
brew list sdl2 查看sdl2安装路径
如果安装路径是:/usr/local/Cellar/sdl2/2.0.14_1,需要在工程的 CMakeLists.txt 文件里,加入配置。
include_directories(/usr/local/Cellar/sdl2/2.0.14_1/include/)
link_directories(/usr/local/Cellar/sdl2/2.0.14_1/lib )
在工程里加入 SDL 库和 OpenGL 库链接配置。
target_link_libraries(
SDL_OpenGL
SDL2
"-framework OpenGL"
)
加入头文件。
//SDL API
#include "SDL2/SDL.h"
//OpenGL API
#include "OpenGL/gl3.h"
接下来就是整个使用 SDL 渲染的整体流程

文章介绍了SDL库的作用,如何通过它实现跨平台的OpenGL上下文环境和窗口管理。它提到了SDL在FFmpeg的ffplay工具中的应用,以及对移动开发者可能存在的局限性。文章详细阐述了在MacOS上安装SDL2,以及在CMakeLists.txt中配置SDL2的过程,并给出了一段使用SDL创建窗口、OpenGL上下文、渲染循环及资源释放的基本代码示例。
最低0.47元/天 解锁文章
606

被折叠的 条评论
为什么被折叠?



