È stata rilasciata la libreria SDL 2.0.18 (Simple DirectMedia Layer), progettata per semplificare la scrittura di giochi e applicazioni multimediali. La libreria SDL offre strumenti come l'output grafico 2D e 3D accelerato hardware, gestione degli input, riproduzione audio, output 3D tramite OpenGL/OpenGL ES/Vulkan e molte altre operazioni correlate. La libreria è scritta in C ed è distribuita sotto licenza zlib. Per utilizzare le funzionalità di SDL in progetti scritti in vari linguaggi di programmazione sono forniti dei binding. Il codice della libreria è distribuito sotto licenza Zlib.
Nel nuovo rilascio:
- Per ciascuna funzione è fornita informazione sulla versione di SDL in cui la funzione è stata introdotta. È garantita la sincronizzazione automatica della documentazione nella wiki con i file di intestazione.
- Aggiunte nuove funzioni:
- SDL_RenderGeometry() e SDL_RenderGeometryRaw() per il disegno di forme arbitrarie utilizzando l'API di Rendering 2D.
- SDL_SetTextureUserData() e SDL_GetTextureUserData() per associare i dati dell'applicazione a una texture.
- SDL_RenderWindowToLogical() e SDL_RenderLogicalToWindow() per convertire tra le coordinate della finestra e le coordinate logiche di rendering.
- SDL_RenderSetVSync() per attivare la sincronizzazione dell'output con il segnale di blanking verticale (vblank).
- SDL_PremultiplyAlpha() per applicare la trasparenza ai blocchi di pixel nel formato SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() e SDL_GetWindowMouseRect() per limitare il movimento del cursore del mouse a un'area specifica della finestra.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() e SDL_JoystickHasRumbleTriggers() per verificare il supporto della vibrazione adattiva (rumble) da parte del controller di gioco e del joystick.
- SDL_GetWindowICCProfile() per ottenere il profilo ICC dei colori della finestra (per controllare le modifiche al profilo è stato proposto l'evento SDL_WINDOWEVENT_ICCPROF_CHANGED).
- Aggiunti nuovi suggerimenti: SDL_HINT_APP_NAME per fornire informazioni sul nome dell'applicazione e SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY per abilitare la trasparenza per le finestre EGL.
- Aggiunto un nuovo evento di finestra SDL_WINDOWEVENT_DISPLAY_CHANGED, che viene generato quando cambia lo schermo su cui viene visualizzata la finestra.
- È stata fornita la possibilità di determinare i parametri precisi del movimento della rotellina del mouse utilizzando i campi 'preciseX' e 'preciseY' nei parametri dell'evento.
- La funzione SDL_WaitEvent() è stata riprogettata per ridurre il carico sulla CPU.
- L'API hidapi è stata trasferita nella categoria pubblica ed è ora accessibile tramite il file di intestazione SDL_hidapi.h.
- Sulla piattaforma Windows è stato migliorato il riconoscimento del movimento relativo del mouse in Windows Remote Desktop. È stata aggiunta la segnalazione SDL_HINT_IME_SHOW_UI per mostrare i componenti dell'interfaccia nativa (nascosti per impostazione predefinita). Per le applicazioni UWP, WGI è usato al posto di XInput per migliorare il supporto dei controller di input.
- Per la piattaforma Linux sono stati implementati i segni: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME per legare azioni visibili quando viene disattivato il salvaschermo; SDL_HINT_LINUX_JOYSTICK_CLASSIC per scegliere quale dispositivo (/dev/input/js* o /dev/input/event*) utilizzare per il joystick; SDL_HINT_JOYSTICK_DEVICE per impostare il dispositivo aperto per il joystick. È stata aggiunta la funzione SDL_LinuxSetThreadPriorityAndPolicy() per gestire la priorità e la politica dei thread.
- Per la piattaforma Android è stato implementato il supporto per l'uscita e la cattura dell'audio tramite l'API AAudio. Supporto per il controller Steam Controller disabilitato per impostazione predefinita (per abilitarlo è stata proposta segnalazione SDL_HINT_JOYSTICK_HIDAPI_STEAM).
Integrazione: Uno degli autori di SDL, Ryan Gordon (icculus), ha annunciato piani per aggiungere a SDL una semplice API 3D che supporti le capacità delle API moderne dei GPU (Vulkan, Direct3D 12, Metal). Questa sviluppo sarà finanziato da Epic Games, nell'ambito del programma Epic Megagrant. Gordon ha presentato la domanda per il grant nel maggio 2021 e ha ricevuto una risposta positiva due settimane fa.
Fonte: opennet.ru
