Представено е издание на библиотеката SDL 3.2.0 (Simple DirectMedia Layer), което е обозначено като първо официално стабилно издание на версията SDL 3. Библиотеката цели да опрости написването на игри и мултимедийни приложения, като предоставя функции като хардуерно ускорен рендеринг на 2D и 3D графика, обработка на входа, възпроизвеждане на звук и изход в 3D чрез OpenGL, OpenGL ES, Metal, Direct3D или Vulkan. Кодът е написан на езика C и се разпространява под лицензия Zlib. Предоставят се обвивки за използването на SDL в проекти на различни езици за програмиране.
Основни нововъведения:
- Съществено е подобрена поддръжката на протокола Wayland, който сега е активиран по подразбиране в среди, предоставящи едновременна поддръжка на Wayland и X11, и които поддържат разширенията на протокола fifo-v1 и commit-timing-v1.
- По подразбиране е задействан мултимедийният сървър PipeWire, който е означен като по-приоритетен от PulseAudio.
- Добавена е поддръжка за видеозапис от уебкамера (при наличието на 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 – достъп до уеб камери.
- Pen API – работа с графични таблети и цифрови писалки, като Wacom и Apple Pencil.
-
Източник: opennet.ru
