Вышла SDL 3.4 — кроссплатформенная библиотека с открытым исходным кодом, которая помогает разработчикам программного обеспечения создавать мультимедийные приложения и игры для различных платформ. В новой версии реализован широкий спектр улучшений в области графики, ввода данных, звука и интеграции с платформами. Особое внимание уделено улучшению взаимодействия между 3D-API на основе графического процессора и системой 2D-рендеринга.
Таким образом, новые и улучшенные API позволяют запрашивать свойства графического процессора, настраивать функции Vulkan во время создания устройства и включать функции графического процессора на старом оборудовании с помощью явных флагов функций. Кроме того, поддержка текстур YUV, цветовых пространств HDR, палитр текстур и улучшенное масштабирование пиксельной графики ещё больше расширяют возможности рендерера.
Ещё одно заметное дополнение — встроенная обработка изображений в формате PNG. Теперь SDL может загружать и сохранять изображения в формате PNG, не прибегая к внешним библиотекам изображений, что упрощает работу с ресурсами и снижает количество зависимостей. Новые API для работы с изображениями также интегрируются с обновлёнными функциями загрузки поверхностей, которые автоматически определяют форматы BMP и PNG.
Обработка ввода также претерпела значительные изменения. В SDL 3.4 добавлены анимированные цветные курсоры, автоматическое масштабирование курсора с учётом разрешения экрана, улучшенное распознавание пера и планшета, события жестов «щипок» и более гибкое преобразование ввода с мыши.
Поддержка контроллеров была расширена для нескольких производителей, в том числе улучшена совместимость с современными геймпадами и проводными контроллерами Nintendo Switch 2 при использовании libusb. Что касается звука, новые API повышают эффективность обработки потоков, добавляют поддержку планарного звука и позволяют приложениям при необходимости обходить обработку звука на уровне ОС.
Улучшения, специфичные для конкретной платформы, затрагивают все поддерживаемые системы. В Linux SDL получает атомарную поддержку KMSDRM и новые подсказки для управления атомарной настройкой режимов, а также улучшения интеграции с дисплеем Wayland. Пользователи Windows получают доступ к новым API для отслеживания прогресса на панели задач, дополнительной программной растеризации Direct3D 11 и дополнительному контролю над необработанным вводом и поведением звука.
В macOS улучшена работа с клавиатурой за счёт новых опций повтора клавиш, а iOS и VisionOS получили обновления для поддержки оконных сцен и более высокой частоты обновления по умолчанию на устройствах Vision Pro.
Кроме того, в SDL 3.4 улучшен контроль над тем, как окна взаимодействуют с областью просмотра браузера, включая возможность автоматического заполнения документа и явной привязки окон SDL к определённым элементам HTML-холста или целевым клавишам клавиатуры. Эти изменения направлены на упрощение развёртывания и повышение согласованности браузерных приложений.
Помимо новых функций, релиз включает в себя многочисленные доработки API, исправления ошибок и улучшения в системе логирования. Теперь SDL предоставляет дополнительную системную информацию, поддерживает пользовательскую очистку памяти для потоков ввода-вывода в памяти и предоставляет более чёткие описания событий для отладки и диагностики.
В Unix-подобных системах SDL также формализует использование примечаний к метаданным ELF для описания дополнительных зависимостей среды выполнения, что помогает распространителям создавать более точные зависимости пакетов.
SDL 3.4 уже доступен, с полным описанием релиза и подробными изменениями в API опубликованными на сайте. Объявление здесь.