[前一页] 目录 [后一页]

SDL有哪些功能?

视频
  • 设置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音频控制API
提示:
如果向CD-ROM API传递一个NULL CD-ROM句柄,结果将是最后被打开的CD-ROM执行相应的动作。
线程
  • 简单的线程创建API
  • 用于同步的简单的二进制信号量(semaphores) 
提示:
在线程中不要使用I/O和内存管理这样的C函数库,除非你能采取必要的措施—— 因为这些函数会把其他线程使用的资源锁定。
定时器
  • 读取已流逝的毫秒数。
  • 等待指定的毫秒数。
  • 设置一个10毫秒精度的周期性定时器。
提示:
Win32上的GetTickCount() 可以很方便的用 SDL_GetTicks()替代。
字节序无关
  • 侦测当前系统的字节序
  • 快速转换数据的函数
  • 读写指定字节序的数据
提示:
当读取数据文件时,可能要对16位图像进行字节交换(byteswap)。

[前一页] 目录 [后一页]