Представлен релиз библиотеки SDL 3.2.0 (Simple DirectMedia Layer), который помечен как первый официальный стабильный выпуск ветки SDL 3. Библиотека нацелена на упрощение написания игр и мультимедийных приложений, и предоставляет такие возможности, как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука и вывод 3D через OpenGL, OpenGL ES, Metal, Direct3D или Vulkan. Код написан на языке Си и распространяется под лицензией Zlib. Предоставляются обвязки для использования SDL в проектах на различных языках программирования.
Основные новшества:
- Существенно улучшена поддержка протокола Wayland, который теперь активирован по умолчанию в окружениях, предоставляющих одновременную поддержку Wayland и X11, и поддерживающих расширения протокола fifo-v1 и commit-timing-v1.
- Задействован по умолчанию мультимедийный сервер PipeWire, который помечен как более приоритетный, чем PulseAudio.
- Добавлена поддержка видеозахвата с web-камер (при наличии PipeWire).
- Добавлена возможность использования графических планшетов и цифровых перьев.
- Значительно улучшена поддержка экранов с высокой плотностью пикселей (High DPI).
- Добавлена поддержка цветовых пространств и возможность управления несколькими цветовыми пространствами. Реализована начальная поддержка HDR.
- Полностью переработан код для работы со звуком. Добавлена поддержка логических звуковых устройств (разные части программы могут работать со своим отдельным звуковым устройством). Добавлены средства для работы со звуковыми потоками, преобразования потоков, изменение частоты дискретизации, микширования, управления буферизацией, изменения тона и громкости. Реализована автоматическая обработка подключения или отключения звуковых устройств, а также смена звукового устройства по умолчанию.
- В API 2D-отрисовки добавлен бэкенд для отрисовки через API Vulkan. Добавлены функции для работы с поверхностями через API Vulkan.
- Проведена большая чистка устаревших возможностей, потерявших актуальность в современных реалиях. Например, прекращена поддержка OpenGL ES 1.0 и DirectFB, удалён код для работы на устаревших платформах, таких как QNX, Pandora, WinRT и OS/2.
- Предоставлена возможность организации работы программы с использованием callback-вызовов и определения цикла обработки событий в функции main().
- В API внесены изменения, нарушающие совместимость. Унифицированы правила наименования API — вызовы в разных подсистемах теперь именуются с использованием одной общей схемы.
- Добавлены новые API:
- GPU API — кросс-платформенный доступ к GPU и возможностям 3D-рендеринга.
- Dialog API — использование диалогов для выбора/открытия/сохранения файлов и каталогов.
- Filesystem API — операции с файловой системой, управление каталогами и поиск файлов.
- Storage API — абстрактный программный интерфейс для доступа к разным системам хранения данных.
- Camera API — доступ к web-камерам.
- Pen API — работа с графическими планшетами и цифровыми перьями, такими как Wacom и Apple Pencil.
-
Աղբյուր: opennet.ru
