
Recentment, es va anunciar el llançament de SDL 3.2, la qual es presenta com la primera versió estable de la branca SDL 3 i s'hi han introduït importants millores, noves funcionalitats, ajustaments, APIs, correccions i més.
Per als que desconeixen de la biblioteca SDL, han de saber que aquesta proporciona eines com sortida de gràfics 2D i 3D accelerada per maquinari, processament d'entrada, reproducció d'àudio, sortida 3D a través d'OpenGL/OpenGL ES i moltes altres operacions relacionades.
Principals novetats de SDL 3.2
A SDL 3.2, es destaca el suport millorat per a Wayland, que ara s'activa per defecte en sistemes que ofereixen compatibilitat tant amb Wayland com amb X11, sempre que admetin les extensions fifo-v1 i commit-timing-v1. També es prioritza per defecte l'ús del servidor de mitjans PipeWire, considerat més eficient que PulseAudio. Addicionalment, s'ha incorporat la capacitat de capturar vídeo des de càmeres web, sempre que PipeWire estigui disponible.
Una altra novetat és la compatibilitat afegida per a tauletes gràfiques i bolígrafs digitals, juntament amb un suport optimitzat per a pantalles DPI. Així mateix, s'ha implementat la gestió d'espais de color, permetent treballar amb múltiples configuracions i brindant suport inicial per a HDR.
En les millores de so, a SDL 3.2 el codi ha estat completament redissenyat, incorporant noves eines per gestionar dispositius lògics d'àudio, facilitant que diferents parts d'un programa puguin operar amb dispositius independents. A més, s'han inclòs funcionalitats per treballar amb fluxos d'àudio, fer conversions, ajustar la freqüència de mostreig, barrejar sons i gestionar l'emmagatzematge en memòria intermèdia, juntament amb la possibilitat de modificar el to i el volum. Per acabar, s'ha automatitzat el reconeixement de dispositius de so connectats o desconnectats i la gestió dinàmica del dispositiu de so predeterminat.
Una altra de les addicions més destacades és la incorporació d'un backend a l'API de renderitzat 2D, que permet aprofitar la potència de Vulkan tant per renderitzar com per manipular superfícies mitjançant aquesta API. A més, es va realitzar una important neteja de característiques considerades obsoletes, com ara el suport per a OpenGL ES 1.0 i DirectFB, juntament amb l'eliminació de compatibilitat amb plataformes heretades com QNX, Pandora, WinRT i OS/2.
SDL 3.2 també introdueix la possibilitat d'estructurar programes utilitzant la devolució de trucada i definint el bucle de processament d'esdeveniments directament a la funció principal del codi. A més, si van implementar canvis a l'API que trenquen amb la compatibilitat anterior, però que busquen una coherència més gran en unificar les regles de nomenclatura en tots els subsistemes.
Dins de les noves eines incloses, destaquen diverses API dissenyades per cobrir diferents necessitats. Entre elles:
- API de GPU permet accés multiplataforma a funcions de renderitzat 3D, mentre que l'API de diàleg facilita la selecció, obertura i desament de fitxers i directoris.
- API del sistema de fitxers afegeix suport per gestionar directoris i cercar fitxers, mentre que la Storage API proporciona una interfície abstracta per interactuar amb diversos sistemes d'emmagatzematge.
- API de càmera per a accés a càmeres web
- API de llapis per treballar amb tauletes gràfiques
- API de propietats per gestionar paràmetres en format clau-valor
- API de processos que facilita l'execució i la comunicació amb processos secundaris.
- També es va incorporar l'API de metadades per definir informació sobre les aplicacions, com s'utilitza en menús de sistemes operatius com ara macOS.
Quant al porta-retalls, se'n va ampliar la funcionalitat, permetent ara transferir dades en múltiples formats. Per la seva banda, les capacitats per gestionar entrades de teclat van ser millorades, afegint opcions per configurar teclats virtuals a dispositius iOS i Android. Addicionalment, es va revisar i millorar la documentació de l'API, acompanyant-la d'exemples pràctics que es poden executar directament des d'un navegador.
Finalment i no menys important, cal destacar també que juntament amb SDL 3.2, es va llançar la capa de compatibilitat sdl2-compat, dissenyada per oferir una transició fluida entre SDL 2 i SDL 3. Aquest component permet executar programes escrits per a SDL 2 aprofitant les funcionalitats de la nova branca, actuant com un reemplaçament complet per a la versió anterior.
Interessat en poder conèixer més sobre això, pots consultar els detalls en el següent enllaç.