视频
- 设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。
- 直接写入线性的图像帧缓冲(framebuffer)。
- 用颜色键值(colorkey)或者alpha混合属性创建surface。
- Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。
- 硬件加速的blit和fill(填充)操作,如果硬件支持的话。
|
提示:
你可以分别用SDL_WM_SetCaption()和 SDL_WM_SetIcon()
设置程序的标题栏和图标(如果有的话) 。 |
事件
- 提供以下事件:
- 应用程序的visibility发生改变
- 键盘输入
- 鼠标输入
- 用户要求的退出
- 每种事件都能通过SDL_EventState()关闭或者打开。
- 事件经由用户指定的过滤函数再被加入到内部的事件队列。
- 线程安全的事件队列。
|
提示:
调用SDL_PeepEvents()
在事件队列中搜索特定类型的事件。 |
音频
- 设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。
- 由独立的线程执行音频部分,并提供用户回调(callback)机制。
- 设计上考虑到了客户定制的软混音器,但实际上在例程中就包含了一个完整的音频/音乐输出库。
|
提示:
用 SDL_LockAudio() 和 SDL_UnlockAudio()对音频回调函数和程序其他部分都要访问到的数据进行同步。 |
CD音频
|
提示:
如果向CD-ROM API传递一个NULL CD-ROM句柄,结果将是最后被打开的CD-ROM执行相应的动作。 |
线程
- 简单的线程创建API
- 用于同步的简单的二进制信号量(semaphores)
|
提示:
在线程中不要使用I/O和内存管理这样的C函数库,除非你能采取必要的措施——
因为这些函数会把其他线程使用的资源锁定。 |
定时器
- 读取已流逝的毫秒数。
- 等待指定的毫秒数。
- 设置一个10毫秒精度的周期性定时器。
|
提示:
Win32上的GetTickCount() 可以很方便的用 SDL_GetTicks()替代。 |
字节序无关
- 侦测当前系统的字节序
- 快速转换数据的函数
- 读写指定字节序的数据
|
提示:
当读取数据文件时,可能要对16位图像进行字节交换(byteswap)。 |