È stato rilasciato il firmware della libreria SDL 2.0.22 (Simple DirectMedia Layer), volto a semplificare la creazione di giochi e applicazioni multimediali. La libreria SDL offre strumenti come la visualizzazione 2D e 3D accelerata hardware, gestione degli input, riproduzione audio, output 3D tramite OpenGL/OpenGL ES/Vulkan e un'ampia gamma di altre operazioni correlate. La libreria è scritta in C e viene distribuita con licenza Zlib. Per utilizzare le funzionalità di SDL in progetti in diversi linguaggi di programmazione, sono disponibili le necessarie interfacce.
Nel nuovo rilascio:
- Migliorato il supporto per il protocollo Wayland. Inizialmente si prevedeva di passare all'uso del protocollo Wayland di default negli ambienti che supportano contemporaneamente Wayland e X11, ma a causa dei problemi legati a Wayland nelle applicazioni e nei driver NVIDIA, si è deciso di rinviare il passaggio (negli ambienti Wayland con il componente XWayland, continua a essere utilizzato l'output con il protocollo X11). Per utilizzare Wayland, è possibile impostare prima dell'avvio dell'applicazione la variabile di ambiente "SDL_VIDEODRIVER=wayland" oppure aggiungere nel codice la funzione 'SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11")' prima di chiamare SDL_Init(). Per la compilazione con Wayland è necessaria almeno la versione libwayland-client 1.18.0.
- Aggiunta la funzione SDL_RenderGetWindow() per ottenere la finestra associata al SDL Renderer.
- Aggiunto un set di funzioni per manipolare aree rettangolari (determinazione dell'appartenenza di punti, cancellazione, confronto, unione, ecc.), operando su coordinate e dimensioni basate su numeri a virgola mobile: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon(), SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() e SDL_IntersectFRectAndLine().
- Aggiunta la funzione SDL_IsTextInputShown() per verificare la visualizzazione dell'area di input del testo.
- Aggiunta la funzione SDL_ClearComposition() per cancellare l'area di input del testo senza disabilitare il metodo di input (IME).
- Aggiunto l'evento SDL_TEXTEDITING_EXT per gestire lunghe aree di input di testo e il segnale SDL_HINT_IME_SUPPORT_EXTENDED_TEXT per abilitare questo evento.
- Aggiunto il segnale SDL_HINT_MOUSE_RELATIVE_MODE_CENTER per abilitare la limitazione del mouse solo al centro della finestra anziché all'intera finestra quando è attivata la modalità relativa.
- Abilitato il catturamento automatico del mouse quando vengono premuti i pulsanti del mouse. Per disabilitarlo, è stato introdotto il segnale SDL_HINT_MOUSE_AUTO_CAPTURE.
- Aggiunti i suggerimenti SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL e SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN per trasmettere informazioni sull'uso di open window OpenGL o Vulkan.
- Aggiunto il suggerimento SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE per abilitare la consegna dell'evento SDL_QUIT alla chiusura dell'ultima finestra dell'applicazione.
- Aggiunto il suggerimento SDL_HINT_JOYSTICK_ROG_CHAKRAM per gestire il mouse ROG Chakram come un joystick.
- Per Linux, aggiunto il suggerimento SDL_HINT_X11_WINDOW_TYPE per impostare il parametro _NET_WM_WINDOW_TYPE per le finestre.
- Per Linux, aggiunto il suggerimento SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR per utilizzare libdecor con i compositori server, che supportano xdg-decoration.
- Per Android è stata implementata la funzione SDL_AndroidSendMessage() per inviare comandi arbitrari al gestore Java di SDL.
Fonte: opennet.ru
