SDL详情介绍
2017-08-25 11:47
204 查看
SDL库的作用说白了就是封装了复杂的视音频底层操作,简化了视音频处理的难度。主要用于播放视频,与FFmpeg的区别就是,FFmpeg是用于编解码视频文件,而SDL是把FFmpeg解码后的视频像素数据就行播放展示出来。
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统,除此之外,还有一些单独的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了SDL的“标准库”:
SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。
SDL_mixer—更多的声音输出函数以及更多的声音格式支持。
SDL_net—网络支持。
SDL_ttf—TrueType字体渲染支持。
SDL_rtf—简单的RTF渲染支持。
子系统
SDL将功能分成下列数个子系统(subsystem):
Video(图像)—图像控制以及线程(thread)和事件管理(event)。
Audio(声音)—声音控制
Joystick(摇杆)—游戏摇杆控制
CD-ROM(光盘驱动器)—光盘媒体控制
Window Management(视窗管理)-与视窗程序设计集成
Event(事件驱动)-处理事件驱动
SDL功能
视频
设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。 直接写入线性的图像帧缓冲(framebuffer)。 用颜色键值(colorkey)或者alpha混合属性创建surface。
Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。
硬件加速的blit和fill(填充)操作,如果硬件支持的话。
事件
提供以下事件: 应用程序的visibility发生改变 键盘输入 鼠标输入 用户要求的退出
每种事件都能通过SDL_EventState()关闭或者打开。 事件经由用户指定的过滤函数再被加入到内部的事件队列。 线程安全的事件队列。
音频
设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。
由独立的线程执行音频部分,并提供用户回调(callback)机制。
设计上考虑到了客户定制的软混音器,但实际上在例程中就包含了一个完整的音频/音乐输出库。
CD音频
完整的CD音频控制API 线程 简单的线程创建API 用于同步的简单的二进制信号量(semaphores)
定时器
读取已流逝的毫秒数。 等待指定的毫秒数。 设置一个10毫秒精度的周期性定时器。
字节序无关
侦测当前系统的字节序 快速转换数据的函数 读写指定字节序的数据
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统,除此之外,还有一些单独的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了SDL的“标准库”:
SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。
SDL_mixer—更多的声音输出函数以及更多的声音格式支持。
SDL_net—网络支持。
SDL_ttf—TrueType字体渲染支持。
SDL_rtf—简单的RTF渲染支持。
子系统
SDL将功能分成下列数个子系统(subsystem):
Video(图像)—图像控制以及线程(thread)和事件管理(event)。
Audio(声音)—声音控制
Joystick(摇杆)—游戏摇杆控制
CD-ROM(光盘驱动器)—光盘媒体控制
Window Management(视窗管理)-与视窗程序设计集成
Event(事件驱动)-处理事件驱动
SDL功能
视频
设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。 直接写入线性的图像帧缓冲(framebuffer)。 用颜色键值(colorkey)或者alpha混合属性创建surface。
Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。
硬件加速的blit和fill(填充)操作,如果硬件支持的话。
事件
提供以下事件: 应用程序的visibility发生改变 键盘输入 鼠标输入 用户要求的退出
每种事件都能通过SDL_EventState()关闭或者打开。 事件经由用户指定的过滤函数再被加入到内部的事件队列。 线程安全的事件队列。
音频
设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。
由独立的线程执行音频部分,并提供用户回调(callback)机制。
设计上考虑到了客户定制的软混音器,但实际上在例程中就包含了一个完整的音频/音乐输出库。
CD音频
完整的CD音频控制API 线程 简单的线程创建API 用于同步的简单的二进制信号量(semaphores)
定时器
读取已流逝的毫秒数。 等待指定的毫秒数。 设置一个10毫秒精度的周期性定时器。
字节序无关
侦测当前系统的字节序 快速转换数据的函数 读写指定字节序的数据
相关文章推荐
- SDL介绍
- SDL介绍
- Beginning SDL 2.0(3) SDL介绍及BMP渲染
- Beginning SDL 2.0(3) SDL介绍及BMP渲染
- sdl 使用介绍网址
- (译)SDL.NET Surfaces 相关介绍
- 小翻译一篇介绍SDL的文章
- FFmpeg 相关知识之 SDL 介绍
- Vue入坑教程(二)——项目结构详情介绍
- SDL介绍
- iptables 详情介绍
- SDL 介绍
- Linux目录详情介绍
- AndroidManifest.xml 详情对应介绍
- 详情介绍webpack-dev-server,iframe与inline的区别
- 详细介绍Qt,ffmpeg 和SDL开发
- 详细介绍Qt,ffmpeg 和SDl 教程之间的联系
- Win10消费者预览版升级注意事项详情介绍
- RBAC详情介绍
- SDL介绍