SDL

Simple DirectMedia Layer (SDL) 是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。(Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via

Github stars Tracking Chart

Simple DirectMedia Layer (SDL) 是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。 它用于视频播放软件,模拟器和流行的游戏,包括Valve的获奖目录和许多Humble Bundle出品的游戏。

SDL正式支持Windows,Mac OS X,Linux,iOS和Android。 可以在源代码中找到对其他平台的支持。
SDL是用C语言编写的,用C ++编写,并且有一些其他语言的绑定,包括C#和Python。
SDL 2.0是根据zlib许可证分发的。 此许可证允许您在任何软件中自由使用SDL。

SDL 主要功能

视频

  • 3D图形:
    • SDL可以与OpenGL API或Direct3D API(用于3D图形)结合使用
  • 加速2D渲染API:
    • 支持轻松旋转,缩放和alpha混合,所有加速使用现代3D API
    • 使用OpenGL和Direct3D支持加速,并且有一个软件回退
  • 创建和管理多个窗口
输入事件
  • 提供的事件和API函数:
    • 应用程序和窗口状态更改
    • 鼠标输入
    • 键盘输入
    • 操纵杆和游戏控制器输入
    • 多点触摸手势
  • 每个事件可以使用 SDL_EventState() 启用或禁用,
  • 在发布到内部事件队列之前,事件通过用户指定的过滤器函数传递
  • 线程安全事件队列
强制反馈
  • 在Windows,Mac OS X和Linux下支持强制反馈
音频
  • 设置8位和16位音频,单声道立体声或5.1环绕声的音频播放,如果硬件不支持格式,可选择转换
  • 音频在单独的线程中独立运行,通过用户回调机制填充
  • 专为定制软件音频混音器而设计,但SDL_mixer提供了完整的音频/音乐输出库

文件I/O抽象

  • 用于打开,读取和写入数据的通用抽象
  • 内置支持文件和内存
共享对象支持
  • 加载共享对象(Windows上为DLL,Mac OS X上为.dylib,Linux上为.so)
  • 共享对象中的查找函数
线程
  • 简单线程创建API
  • 简单线程本地存储API
  • 互斥体,信号量和条件变量
  • 无锁编程的原子操作
计时器
  • 获取已过去的毫秒数
  • 等待指定的毫秒数
  • 创建在单独的线程中与代码一起运行的计时器
  • 使用高分辨率计数器进行性能分析
CPU特性检测
  • 查询CPU数量
  • 检测CPU功能和支持的指令集
字节序独立(Endian Independence )
  • 检测当前系统的字节顺序
  • 用于快速交换数据值的例程
  • 读取和写入指定字节序的数据
能源管理
  • 查询电源管理状态

Overview

Name With OwnerSDL-mirror/SDL
Primary LanguageC
Program languageHTML (Language Count: 16)
Platform
License:Other
Release Count30
Last Release Namerelease-2.0.14 (Posted on )
First Release Namerelease-1.2.1 (Posted on )
Created At2015-03-21 18:17:09
Pushed At2021-02-10 08:00:33
Last Commit At2021-02-09 15:10:06
Stargazers Count581
Watchers Count47
Fork Count252
Commits Count13.2k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count11
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Simple DirectMedia Layer

                              (SDL)

                            Version 2.0

https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting
with README.md

Enjoy!
Sam Lantinga (slouken@libsdl.org)

To the top