Rilascio libreria multimediale SDL 2.0.18

È stata rilasciata la libreria SDL 2.0.18 (Simple DirectMedia Layer), volta a semplificare la scrittura di giochi e applicazioni multimediali. La libreria SDL fornisce strumenti come output grafico 2D e 3D con accelerazione hardware, elaborazione dell'input, riproduzione audio, output 3D tramite OpenGL/OpenGL ES/Vulkan e molte altre operazioni correlate. La libreria è scritta in C ed è distribuita sotto la licenza zlib. Vengono forniti collegamenti per utilizzare le funzionalità SDL in progetti in vari linguaggi di programmazione. Il codice della libreria è distribuito sotto la licenza Zlib.

Nella nuova versione:

  • Per ciascuna funzione vengono fornite informazioni sulla versione SDL in cui è apparsa la funzione. Viene fornita la sincronizzazione automatica della documentazione wiki con i file di intestazione.
  • Altre nuove funzioni disponibili:
    • SDL_RenderGeometry() e SDL_RenderGeometryRaw() per il rendering di forme arbitrarie utilizzando l'API 2D Render.
    • SDL_SetTextureUserData() e SDL_GetTextureUserData() per associare i dati dell'applicazione a una texture.
    • SDL_RenderWindowToLogical() e SDL_RenderLogicalToWindow() per la conversione tra le coordinate della finestra e le coordinate di rendering logico.
    • SDL_RenderSetVSync() per abilitare la sincronizzazione dell'uscita con impulso di cancellazione 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 se il controller di gioco e il joystick supportano l'effetto di vibrazione adattiva (rumble)
    • SDL_GetWindowICCProfile() per ottenere il profilo colore ICC della finestra (viene proposto l'evento SDL_WINDOWEVENT_ICCPROF_CHANGED per verificare le modifiche al profilo).
  • Sono stati aggiunti nuovi attributi: SDL_HINT_APP_NAME per trasmettere informazioni sul nome dell'applicazione e SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY per abilitare la trasparenza per le finestre EGL.
  • Aggiunto un nuovo evento finestra, SDL_WINDOWEVENT_DISPLAY_CHANGED, che viene generato quando cambia lo schermo su cui viene mostrata la finestra.
  • È possibile definire i parametri esatti del movimento della rotella del mouse utilizzando i campi “preciseX” e “preciseY” nei parametri dell'evento.
  • La funzione SDL_WaitEvent() è stata riprogettata per ridurre il carico della CPU.
  • L'API hidapi è stata spostata nella categoria pubblica ed è ora disponibile tramite il file di intestazione SDL_hidapi.h.
  • Sulla piattaforma Windows, è stato migliorato il rilevamento del movimento relativo del mouse in Windows Remote Desktop. Aggiunto l'attributo SDL_HINT_IME_SHOW_UI per mostrare i componenti dell'interfaccia nativa (nascosti per impostazione predefinita). Per le applicazioni UWP, viene utilizzato WGI al posto di XInput per migliorare il supporto per i controller di input.
  • Per la piattaforma Linux sono stati implementati i seguenti attributi: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME per le azioni vincolanti visualizzate quando lo screen saver è disabilitato; SDL_HINT_LINUX_JOYSTICK_CLASSIC per selezionare quale dispositivo (/dev/input/js* o /dev/input/event*) utilizzare per il joystick; SDL_HINT_JOYSTICK_DEVICE per impostare il dispositivo in modo che si apra per il joystick. Aggiunta la funzione SDL_LinuxSetThreadPriorityAndPolicy() per controllare la priorità dei thread.
  • Per la piattaforma Android è stato implementato il supporto per l'output e l'acquisizione audio tramite l'API AAudio. Per impostazione predefinita, il supporto per Steam Controller è disabilitato (è stato suggerito il flag SDL_HINT_JOYSTICK_HIDAPI_STEAM per l'abilitazione).

Aggiunta: uno degli autori di SDL, Ryan Gordon (icculus), ha affermato che intende aggiungere una semplice API 3D a SDL che supporti le funzionalità API delle moderne GPU (Vulkan, Direct3D 12, Metal). Questo sviluppo sarà finanziato da Epic Games come parte del programma Epic Megagrant. Gordon ha presentato una domanda per la sovvenzione nel maggio 2021 e due settimane fa ha ricevuto una risposta positiva.

Fonte: opennet.ru

Aggiungi un commento