
Останнім часом анонсовано випуск SDL 3.2, яка представлена як перша стабільна версія гілки SDL 3 і містить важливі вдосконалення, нові функції, налаштування, API, виправлення тощо.
Тим, хто не знає про бібліотеку SDL, слід знати, що вона надає такі інструменти, як апаратно-прискорений вивід 2D і 3D-графіки, обробка вхідних даних, відтворення аудіо, 3D-вивід через OpenGL/OpenGL ES і багато інших пов’язаних операцій.
Основні нові можливості SDL 3.2
У SDL 3.2 він виділений Покращена підтримка Wayland, що зараз Він активований за замовчуванням у системах, які пропонують сумісність з Wayland і X11, якщо вони підтримують розширення fifo-v1 і commit-timing-v1. Використання медіа-сервера PipeWire, який вважається більш ефективним, ніж PulseAudio, також має пріоритет за замовчуванням. Крім того, була додана можливість записувати відео з веб-камер за умови наявності PipeWire.
Ще одна новинка - це Додано підтримку графічних планшетів і цифрових ручок, а також оптимізовану підтримку дисплеїв з роздільною здатністю на дюйм. Так само було реалізовано керування колірним простором, що дозволяє працювати з кількома конфігураціями та забезпечує початкову підтримку HDR.
У покращенні звуку, У SDL 3.2 код було повністю перероблено, включення нових інструментів для керування логічними аудіопристроями, що полегшує роботу різних частин програми з незалежними пристроями. Крім того, були включені функції для роботи з аудіопотоками, виконання перетворень, налаштування частоти дискретизації, змішування звуків і керування буферизацією, а також можливість змінювати висоту та гучність. Нарешті, автоматизовано розпізнавання підключених або відключених звукових пристроїв і динамічне керування звуковим пристроєм за замовчуванням.
Ще одне з найпомітніших доповнень це включення серверної частини в API 2D візуалізації, що дозволяє вам скористатися перевагами потужності Vulkan як для візуалізації, так і для маніпулювання поверхнями за допомогою цього API. Крім того, було суттєво очищено функції, які вважаються застарілими, наприклад підтримку OpenGL ES 1.0 і DirectFB, а також видалення підтримки застарілих платформ, таких як QNX, Pandora, WinRT і OS/2.
SDL 3.2 також представляє можливість структурування програм за допомогою зворотного виклику та визначення циклу обробки подій безпосередньо в основній функції коду. Крім того, ста внесені зміни в АПЯ порушую попередню сумісність, але шукаю більшої узгодженості шляхом уніфікації правил іменування в усіх підсистемах.
В межах включені нові інструменти, виділяють кілька API, призначених для задоволення різних потреб. Між ними:
- GPU API забезпечує міжплатформний доступ до функцій 3D-рендерінгу, тоді як Dialog API дозволяє легко вибирати, відкривати та зберігати файли та каталоги.
- API файлової системи додає підтримку для керування каталогами та пошуку файлів, а API зберігання надає абстрактний інтерфейс для взаємодії з різними системами зберігання.
- Camera API для доступу до веб-камери
- Pen API для роботи з графічними планшетами
- API властивостей для керування параметрами у форматі ключ-значення
- API процесу, який полегшує виконання та зв’язок із другорядними процесами.
- API метаданих також було додано для визначення інформації про програми, яка використовується в меню операційних систем, таких як macOS.
Що стосується буфера обміну, то його функціонал розширено, тепер дозволяє передавати дані в кількох форматах. Зі свого боку, були покращені можливості керування введенням з клавіатури, додано опції для налаштування віртуальних клавіатур на пристроях iOS та Android. Крім того, було переглянуто та вдосконалено документацію API, яка супроводжується практичними прикладами, які можна виконувати безпосередньо з браузера.
І останнє, але не менш важливе, слід також зазначити, що Разом із SDL 3.2 було випущено рівень сумісності sdl2-compat, розроблений щоб забезпечити плавний перехід між SDL 2 і SDL 3. Цей компонент дозволяє запускати програми, написані для SDL 2, використовуючи переваги нової гілки, виступаючи як повна заміна попередньої версії.
Якщо вам цікаво дізнатися про це більше, ви можете ознайомитися з деталями У наступному посиланні.