SDL (Simple DirectMedia Layer) 是一个跨平台的多媒体和游戏开发包,提供 2D、 音频、事件驱动、多线程和定时器等服务,并有大量的扩充开发包,如 TCP/IP 网络,游戏角色,混音等。SDL 用 C 开发,但也有 Perl,PHP,Delphi 等多种语言的版本。
除了大量错误修复之外,SDL 2.26 版本还带来大量修改,主要更改如下:
普通改动
- 将 OpenGL 标头更新为 The Khronos Group Inc. 的最新 API。
- 添加了 SDL_GetWindowSizeInPixels() ,以获取以像素为单位的窗口大小
- 为软件渲染器添加了模拟 vsync 同步
- 将鼠标位置添加到 SDL_MouseWheelEvent
- 添加了 SDL_ResetHints() ,以将所有提示重置为其默认值
- 添加了对组合式 Joy-Cons 控制器的左右陀螺仪传感器的访问
- 当硬件提供该信息时,向 SDL_SensorEvent 和 SDL_ControllerSensorEvent 添加微秒时间戳
- ...
Windows:
- 添加提示 SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE ,控制是否使用系统鼠标加速曲线进行相对鼠标运动
macOS:
- 在 macOS 12 上实现了 vsync 同步
Linux:
- 添加了 SDL_SetPrimarySelectionText()、SDL_GetPrimarySelectionText() 和 SDL_HasPrimarySelectionText() ,以与 X11 主选择剪贴板交互
- 添加提示 SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP ,以控制是否在 Wayland 下启用鼠标指针扭曲仿真
Android:
- 启用 IME 软键盘输入
- 添加版本检查,以确保 SDL Java 和 C 代码兼容
更新公告:https://github.com/libsdl-org/SDL/releases/tag/release-2.26.0
随着 SDL 2.26 的发布,SDL3 正式进入开发阶段。