Udgivelsen af biblioteket SDL 3.2.0 (Simple DirectMedia Layer) er blevet præsenteret, og det er markeret som den første officielle stabile udgivelse af SDL 3-grenen. Biblioteket er designet til at lette udviklingen af spil og multimedieapplikationer og tilbyder funktioner som hardwareaccelereret rendering af 2D- og 3D-grafik, inputbehandling, lydafspilning og 3D-udgang via OpenGL, OpenGL ES, Metal, Direct3D eller Vulkan. Koden er skrevet i C og distribueres under Zlib-licensen. Der gives bindinger til brug af SDL i projekter på forskellige programmeringssprog.
Hovednyhederne:
- Supporten for Wayland-protokollen er væsentligt forbedret og er nu aktiveret som standard i miljøer, der tilbyder samtidig support for både Wayland og X11 samt understøtter fifo-v1 og commit-timing-v1 protokoludvidelser.
- Multimediefunktionaliteter er aktiveret som standard. server PipeWire, som er markeret som mere prioriteret end PulseAudio.
- Der er tilføjet support til videooptagelse fra webkameraer (hvis PipeWire er tilgængeligt).
- Mulighed for brug af grafiske tablets og digitale penne er blevet tilføjet.
- Supporten for skærme med høj pixel tæthed (High DPI) er betydeligt forbedret.
- Der er tilføjet support for farverum og mulighed for at administrere flere farverum. Grundlæggende support for HDR er blevet implementeret.
- Koden til lydbehandling er blevet fuldstændig omarbejdet. Support til logiske lydenheder er blevet tilføjet (forskellige dele af programmet kan arbejde med deres egne separate lydenheder). Der er tilføjet værktøjer til håndtering af lydstrømme, strømskabelse, ændring af sample-hastighed, mixing, bufferstyring, ændring af tonehøjde og volumen. Automatisk håndtering af tilslutning eller frakobling af lydenheder samt ændring af standard lydenhed er blevet implementeret.
- I 2D-grafik API'et er der tilføjet en backend til rendering via Vulkan API. Der er tilføjet funktioner til håndtering af overflader via Vulkan API.
- Der er foretaget en omfattende oprydning af forældede funktioner, der ikke længere er relevante i den moderne kontekst. For eksempel er supporten for OpenGL ES 1.0 og DirectFB ophørt, og koden til arbejde på forældede platforme som QNX, Pandora, WinRT og OS/2 er blevet fjernet.
- Mulighed for at organisere programmets arbejde ved hjælp af callback-funktioner og definere begivenhedsbehandlingsløkken i main()-funktionen er blevet givet.
- API'en har gennemgået ændringer, der bryder bagudkompatibiliteten. Navngivningsreglerne for API'er er blevet standardiseret — kald i forskellige delsystemer er nu navngivet ved hjælp af en fælles skabelon.
- Nye API'er er tilføjet:
- GPU API — tværplatform adgang til GPU og 3D-renderingsmuligheder.
- Dialog API — brug af dialoger til valg/åbning/gemning af filer og mapper.
- Filesystem API — operationer med filsystemet, styring af mapper og fil søgning.
- Storage API — en abstrakt programmeringsgrænseflade til adgang til forskellige datalagringssystemer.
- Camera API — adgang til webkameraer.
- Pen API — arbejde med grafiktabletter og digitale penne, såsom Wacom og Apple Pencil.
-
Kilde: opennet.ru
