02.07.2022

Выпуск мультимедийной библиотеки SDL 2.0.22

Состоялся релиз библиотеки SDL 2.0.22 (Simple DirectMedia Layer), нацеленной на упрощение написания игр и мультимедийных приложений. Библиотека SDL предоставляет такие средства как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука, вывод 3D через OpenGL/OpenGL ES/Vulkan и множество иных сопутствующих операций. Библиотека написана на языке Си и распространяется под лицензией Zlib. Для использования возможностей SDL в проектах на различных языках программирования предоставляются необходимые обвязки.

В новом выпуске:

  • Улучшена поддержка протокола Wayland. Изначально планировалось перейти к использованию протокола Wayland по умолчанию в окружениях, предоставляющих одновременную поддержку Wayland и X11, но из-за связанных с Wayland проблем играх и драйверах NVIDIA, решено повременить с переходом (в Wayland-окружениях с компонентом XWayland как и раньше применяется вывод с использованием протокола X11). Для использования Wayland можно выставить перед запуском приложения переменную окружения «SDL_VIDEODRIVER=wayland» или добавить в код функцию ‘SDL_SetHint(SDL_HINT_VIDEODRIVER, «wayland,x11»)’ перед вызовом SDL_Init(). Для компиляции с Wayland требуется как минимум версия libwayland-client 1.18.0.
  • Добавлена функция SDL_RenderGetWindow() для получения окна, ассоциированного с SDL Renderer.
  • Добавлен набор функций для манипуляции прямоугольными областями (определение вхождение точек, очистка, сравнение, объединение и т.п.), оперируя координатами и размерами на базе чисел c плавающей запятой: 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.

Источник.