SDL 2.0.22 媒体库发布

旨在简化游戏和多媒体应用程序编写的 SDL 2.0.22 (Simple DirectMedia Layer) 库已经发布。 SDL 库提供硬件加速的 2D 和 3D 图形输出、输入处理、音频播放、通过 OpenGL/OpenGL ES/Vulkan 的 3D 输出以及许多其他相关操作等功能。 该库是用 C 语言编写的,并在 Zlib 许可证下分发。 为了在各种编程语言的项目中使用 SDL 功能,提供了必要的绑定。

在新版本中:

  • 改进了 Wayland 协议支持。 最初,计划在同时支持 Wayland 和 X11 的环境中默认切换到使用 Wayland 协议,但由于 NVIDIA 游戏和驱动程序中与 Wayland 相关的问题,决定推迟过渡(在 Wayland 环境中有XWayland 组件,使用 X11 协议输出)。 要使用 Wayland,您可以在启动应用程序之前设置环境变量“SDL_VIDEODRIVER=wayland”,或者在调用 SDL_Init() 之前的代码中添加函数“SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11")”。 使用 Wayland 编译至少需要 libwayland-client 1.18.0。
  • 添加了 SDL_RenderGetWindow() 函数以获取与 SDL 渲染器关联的窗口。
  • 添加了一组用于操作矩形区域的函数(确定点的出现、清除、比较、合并等),使用基于浮点数的坐标和大小进行操作:SDL_PointInFRect()、SDL_FRectEmpty()、SDL_FRectEquals()、SDL_FRectEqualsEpsilon () 、SDL_HasIntersectionF()、SDL_IntersectFRect()、SDL_UnionFRect()、SDL_EncloseFPoints() 和 SDL_IntersectFRectAndLine()。
  • 添加了 SDL_IsTextInputShown() 函数来检查文本输入区域是否显示。
  • 添加了 SDL_ClearComposition() 函数以在不禁用输入法 (IME) 的情况下清除文本输入区域。
  • 添加了 SDL_TEXTEDITING_EXT 事件以处理长文本输入区域和 SDL_HINT_IME_SUPPORT_EXTENDED_TEXT 标志以启用此事件。
  • 添加了 SDL_HINT_MOUSE_RELATIVE_MODE_CENTER 标志,以便在启用相对模式时仅将鼠标限制在窗口中心而不是整个窗口。
  • 单击鼠标按钮时启用鼠标自动捕获。 建议禁用 SDL_HINT_MOUSE_AUTO_CAPTURE 属性。
  • 添加了 SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL 和 SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN 标志以在外部 OpenGL 或 Vulkan 窗口中传达使用信息。
  • 添加了 SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE 标志以在最后一个应用程序窗口关闭时启用 SDL_QUIT 事件的传递。
  • 添加了 SDL_HINT_JOYSTICK_ROG_CHAKRAM 特征以将 ROG Chakram 鼠标作为操纵杆处理。
  • 对于 Linux,已添加 SDL_HINT_X11_WINDOW_TYPE 标志以将 _NET_WM_WINDOW_TYPE 参数设置为窗口。
  • 为 Linux 添加了 SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR 标志,以便将 libdecor 与支持 xdg-decoration 的复合服务器一起使用。
  • 对于 Android,实现了 SDL_AndroidSendMessage() 函数以将任意命令发送到 Java SDL 处理程序。

来源: opennet.ru

添加评论