SDL
(
Simple DirectMedia Layer
)
是一套开放源代码的
跨平台多媒体开发库
,使用
C
语
言写成。
SDL
提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的
代码就可以开发出
跨多个平台(
Linux
、
Windows
、
Mac OS X
等)
的应用软件。目前
SDL
多
用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL
的“标准库”
SDL_image
—支持时下流行的图像格式:
BMP
、
PPM
、
XPM
、
PCX
、
GIF
、
JPEG
、
PNG
、
TGA
。
SDL_mixer
—更多的声音输出函数以及更多的声音格式支持。
SDL_net
—网络支持。
SDL_ttf
—
TrueType
字体渲染支持。
SDL_rtf
—
简单的
RTF
渲染支持。
SDL
可以干什么
视频
3D
图形:
SDL 可以与
OpenGL API
或
Direct3D API
结合使用,用于
3D
图形
加速
2D
渲染
API
:
支持简单旋转,缩放和 Alpha
混合,所有这些都使用最新的
3D API
加速
使用 OpenGL
和
Direct3D
支持加速
创建和管理多个窗口
输入事件
提供的事件和
API
方法如下:
应用程序和窗口状态更改
鼠标输入
键盘输入
操纵杆和游戏控制器输入
多点触控手势
可以使用
SDL_EventState
()启用或禁用每个事件
在发布到内部事件队列之前,事件将通过用户指定的过滤器函数传递
线程安全事件队列
音频
设置
8
位和
16
位音频,单声道立体声或
5.1
环绕声的音频播放,如果硬件不支持格式,
可选择转换
音频在单独的线程中独立运行,通过用户回调机制处理
专为自定义软件音频混音器而设计,其中
SDL_mixer
提供完整的音频
/
音乐输出库
文件
I / O
抽象
通用抽象开放,读写数据
内置支持文件和内存支持
共享对象支持
加载共享对象(
Windows
上的
DLL
,
Mac OS X
上的
.dylib
,
Linux
上的
.so
)
共享对象中的查找方法
,
调用
线程
简单线程创建
API
简单
线程本地存储
API
互斥量,信号量和条件变量
用于无锁编程的原子操作
计时器
获取流逝的毫秒数
等待指定的毫秒数
在单独的线程中创建与代码并行运行的计时器
使用高分辨率计数器进行分析
CPU
特征检测
查询
CPU
数量
检测
CPU
功能和支持的指令集
支持大小端检测
检测当前系统的字节顺序
用于快速交换数据值的例程
读取和写入指定字节数据的数据
电源管理
查询电源管理状态
SDL2.0 知识框架体系
![](https://img-blog.csdnimg.cn/direct/74984b301b754d0e98cfd6a1ad8a9ad0.png)
SDL
视频渲染
主要涉及到
四个对象
:
- SDL_Window
- SDL_Surface
- SDL_Render
- SDL_Texture
- SDL_Event
SDL
视频渲染
主要涉及到
相关
API
:
初始化:
SDL_Init(): 初始化 SDL
SDL_CreateWindow(): 创建窗口(
Window
)
SDL_CreateRenderer(): 基于窗口创建渲染器(
Render
)
SDL_CreateTexture(): 创建纹理(
Texture
)
循环渲染数据:
SDL_UpdateTexture(): 设置纹理的数据
SDL_RenderCopy(): 纹理复制给渲染器
SDL_RenderPresent(): 显示
退出:
SDL_DestroyWindow()
SDL_DestroyRenderer()
SDL_DestroyTexture()
SDL_Quit()
SDL
主要涉及到
几个扩展库
:
- SDL_image
- SDL_mixer
- SDL_ttf