Został wydany program biblioteki SDL 3.2.0 (Simple DirectMedia Layer), który oznaczono jako pierwszy oficjalny stabilny wydanie gałęzi SDL 3. Biblioteka ma na celu uproszczenie pisania gier i aplikacji multimedialnych oraz oferuje takie funkcje, jak sprzętowo przyspieszony rendering grafiki 2D i 3D, obsługa wejścia, odtwarzanie dźwięku oraz wyjście 3D przez OpenGL, OpenGL ES, Metal, Direct3D lub Vulkan. Kod jest napisany w języku C i udostępniany na licencji Zlib. Dostarczane są powłoki do używania SDL w projektach w różnych językach programowania.
Główne nowości:
- Została znacznie poprawiona obsługa protokołu Wayland, który teraz jest domyślnie aktywowany w środowiskach, które oferują jednoczesne wsparcie dla Wayland i X11 oraz wspierających rozszerzenia protokołu fifo-v1 i commit-timing-v1.
- Zaimplementowano domyślnie multimedia serwer PipeWire, który jest uznawany za bardziej priorytetowy niż PulseAudio.
- Dodano obsługę przechwytywania wideo z kamer internetowych (jeśli jest dostępny PipeWire).
- Dodano możliwość korzystania z tabletów graficznych i cyfrowych piór.
- Znacząco poprawiono obsługę ekranów o wysokiej gęstości pikseli (High DPI).
- Dodano wsparcie dla przestrzeni kolorów i możliwość zarządzania wieloma przestrzeniami kolorów. Wdrożono wstępne wsparcie dla HDR.
- Kod obsługi dźwięku został całkowicie przeprojektowany. Dodano obsługę logicznych urządzeń dźwiękowych (różne części programu mogą pracować z oddzielnym urządzeniem dźwiękowym). Dodano narzędzia do zarządzania strumieniami dźwięku, konwersji strumieni, zmiany częstotliwości próbkowania, miksowania, zarządzania buforowaniem, zmiany tonu i głośności. Wdrożono automatyczne przetwarzanie podłączenia lub odłączenia urządzeń dźwiękowych oraz zmianę domyślnego urządzenia dźwiękowego.
- W API 2D dodano backend do renderowania przez API Vulkan. Dodano funkcje do obsługi powierzchni przez API Vulkan.
- Przeprowadzono dużą czyszczenie przestarzałych funkcji, które utraciły aktualność w dzisiejszym kontekście. Na przykład, zakończono wsparcie dla OpenGL ES 1.0 i DirectFB, usunięto kod umożliwiający działanie na przestarzałych platformach, takich jak QNX, Pandora, WinRT i OS/2.
- Udostępniono możliwość organizacji pracy programu za pomocą wywołań zwrotnych oraz definiowania pętli przetwarzania zdarzeń w funkcji main().
- W API wprowadzono zmiany naruszające kompatybilność. Ujednolicono zasady nazewnictwa API — wywołania w różnych podsystemach są teraz nazywane zgodnie z jedną wspólną schemą.
- Dodano nowe API:
- GPU API — międzyplatformowy dostęp do GPU oraz możliwości renderowania 3D.
- Dialog API — wykorzystanie okien dialogowych do wyboru/otwierania/zapisywania plików i katalogów.
- Filesystem API — operacje na systemie plików, zarządzanie katalogami i wyszukiwanie plików.
- Storage API — abstrakcyjny interfejs programistyczny do dostępu do różnych systemów przechowywania danych.
- Camera API — dostęp do kamer internetowych.
- Pen API — praca z tabletami graficznymi i cyfrowymi piórami, takimi jak Wacom i Apple Pencil.
-
Źródło: opennet.ru
