标签:API OpenGL 简介 音频 开发 使用 SDL 硬件加速
什么是SDL
Simple DirectMedia Layer 是一个跨平台开发库,旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、游戏杆和图形硬件的低级访问。 它被视频播放软件、模拟器和流行游戏使用。
SDL 正式支持 Windows、Mac OS X、Linux、iOS 和 Android。 可以在源代码中找到对其他平台的支持。
SDL 是用 C 语言编写的,可与 C++ 一起工作,并且有适用于其他几种语言的绑定,包括 C# 和 Python。
SDL 2.0 在 zlib 许可下分发。 此许可证允许您在任何软件中自由使用 SDL。 简单 DirectMedia 层库 (SDL) 是一个通用 API,它通过 OpenGL 提供对音频、键盘、鼠标、操纵杆、3D 硬件和跨多个平台的 2D 帧缓冲区的低级访问。
SDL 可以做什么?
video
3D图形:
SDL 可以与用于 3D 图形的 OpenGL API 或 Direct3D API 结合使用
加速 2D 渲染 API:
支持简单的旋转、缩放和 alpha 混合,所有这些都使用现代 3D API 加速
使用 OpenGL 和 Direct3D 支持加速,并且有软件回退
创建和管理多个窗口
Input Events
提供的事件和 API 函数用于:
应用程序和窗口状态更改
鼠标输入
键盘输入
操纵杆和游戏控制器输入
多点触控手势
可以使用 SDL_EventState() 启用或禁用每个事件
事件在发布到内部事件队列之前通过用户指定的过滤函数传递
线程安全的事件队列
Force Feedback
在 Windows、Mac OS X 和 Linux 下支持力反馈
Audio
设置 8 位和 16 位音频、单声道立体声或 5.1 环绕声的音频播放,如果硬件不支持格式,可选择转换
音频在单独的线程中独立运行,通过用户回调机制填充
专为定制软件混音器而设计,但 SDL_mixer 提供完整的音频/音乐输出库
File I/O Abstraction
用于打开、读取和写入数据的通用抽象
对文件和内存的内置支持
Shared Object Support
加载共享对象(Windows 上的 DLL、Mac OS X 上的 .dylib、Linux 上的 .so)
共享对象中的查找函数
Threads
简单的线程创建 API
简单的线程本地存储 API
互斥量、信号量和条件变量
无锁编程的原子操作
获取经过的毫秒数
等待指定的毫秒数
在单独的线程中创建与您的代码一起运行的计时器
使用高分辨率计数器进行分析
CPU Feature Detection
查询CPU个数
检测 CPU 特性和支持的指令集
Endian Independence
检测当前系统的字节序
快速交换数据值的例程
读写指定字节序的数据
Power Management
查询电源管理状态
六纳米6nami www.6nami.com
SDL 在哪些平台上运行?
视窗
使用 Win32 API 进行显示,利用 Direct3D 进行硬件加速
使用 DirectSound 和 XAudio2 处理声音
Mac OS X
使用 Cocoa 进行视频显示,利用 OpenGL 进行硬件加速
使用 Core Audio 发声
Linux
使用 X11 进行视频显示,利用 OpenGL 进行硬件加速
使用 ALSA、OSS 和 PulseAudio API 获取声音
iOS
使用 UIKit 进行视频显示,利用 OpenGL ES 2.0 进行硬件加速
使用 Core Audio 发声
安卓
使用 JNI 接口进行视频显示,利用 OpenGL ES 1.1 和 2.0 进行硬件加速
对声音使用 JNI 音频回调
标签:API,
OpenGL,
简介,
音频,
开发,
使用,
SDL,
硬件加速
From: https://www.cnblogs.com/6nami/p/16661863.html