Rilascio della libreria multimediale SDL 3.4.0

È stata presentata la release della libreria SDL 3.4.0 (Simple DirectMedia Layer). Questa libreria è progettata per semplificare la scrittura di giochi e applicazioni multimediali, offrendo funzionalità come l'output grafico 2D e 3D accelerato hardware, gestione degli input, riproduzione audio e output 3D tramite OpenGL, OpenGL ES, Metal, Direct3D o Vulkan. Il codice è scritto in C e distribuito sotto licenza Zlib. Vengono fornite delle wrapper per utilizzare SDL in progetti in diversi linguaggi di programmazione.

SDL 3.4.0 rappresenta il secondo ramo stabile significativo della serie SDL 3.x; la prima serie stabile è stata dichiarata con la 3.2.x, mentre il ramo 3.3.x è stato posizionato come sperimentale. Le principali modifiche in SDL 3.4.0 riguardano il miglioramento della portabilità tra le API 3D GPU e quelle per il rendering 2D, l'ampliamento del supporto per la compilazione in WebAssembly tramite il compilatore Emscripten, il miglioramento della compatibilità con tablet grafici e penne digitali, nonché l'introduzione del supporto nativo per il formato delle immagini PNG.

Tra le nuove funzionalità in SDL 3.4.0:

  • È stato aggiunto il supporto nativo per le immagini in formato PNG, per le quali sono state proposte le funzioni SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() e SDL_SavePNG_IO(). Per determinare il formato (PNG o BMP) e caricare le immagini come superfici, sono state aggiunte le funzioni SDL_LoadSurface() e SDL_LoadSurface_IO().
  • È stata aggiunta la funzione SDL_RotateSurface() per creare una copia ruotata della superficie.
  • È stata aggiunta la funzione SDL_CreateAnimatedCursor() per creare cursori animati colorati, oltre alla variabile SDL_HINT_MOUSE_DPI_SCALE_CURSORS per la scalabilità automatica dei cursori in relazione al livello di ridimensionamento dello schermo.
  • Sono state aggiunte le funzioni SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() e SDL_GetWindowProgressValue() per mostrare il progresso di un'operazione nell'icona dell'app nella barra delle applicazioni.
  • Sono state aggiunte proprietà per l'uso delle API GPU con hardware più datato.
  • È stata aggiunta la proprietà SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER e SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA per configurare e attivare le funzionalità dell'API Vulkan durante la creazione dei dispositivi GPU.
  • È stata aggiunta la funzione SDL_GetGPUDeviceProperties() per richiedere informazioni sulla GPU.
  • Sono state aggiunte le funzioni SDL_CreateGPURenderer() e SDL_GetGPURendererDevice() per sfruttare la GPU nel rendering 2D, oltre a SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() e SDL_DestroyGPURenderState() per utilizzare gli shader frammentali nel rendering 2D.
  • Nella 2D-rappresentazione tramite GPU è stata implementata il supporto per texture YUV e HDR. È stato aggiunto il supporto per texture con palette, per cui sono state aggiunte le funzioni SDL_GetTexturePalette() e SDL_SetTexturePalette(). Sono state aggiunte le funzioni SDL_GetPixelFormatFromGPUTextureFormat() e SDL_GetGPUTextureFormatFromPixelFormat() per la conversione dei formati delle texture, così come i parametri SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER e SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER per la creazione di texture 2D a partire da texture GPU. Sono state aggiunte funzioni per la configurazione delle texture: SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
  • È stato aggiunto il parametro SDL_SCALEMODE_PIXELART per utilizzare un algoritmo di scaling ottimizzato per la grafica pixelata.
  • Sono stati implementati eventi SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END e SDL_EVENT_AUDIO_DEVICE_ADDED, che si attivano al cambiamento dei confini, alla comparsa/nascita della tastiera su schermo, ai gesti sullo schermo e all'aggiunta di un dispositivo audio.
  • Sono state aggiunte le funzioni SDL_PutAudioStreamDataNoCopy() e SDL_PutAudioStreamPlanarData() per un'elaborazione più efficiente dei flussi audio.
  • È stato aggiunto il supporto per i controller di gioco Nintendo Switch 2 collegati via USB. È stato ampliato il supporto per i controller 8BitDo, FlyDigi e Hand Held Legend SInput.
  • Per migliorare il funzionamento delle applicazioni WebAssembly compilate con il compilatore Emscripten, è stata aggiunta la funzione SDL_SetWindowFillDocument() e sono stati implementati i parametri SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING e SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • Sulla piattaforma Linux è stato implementato il supporto per operazioni atomiche utilizzando KMSDRM, attivabili tramite la proprietà SDL_HINT_KMSDRM_ATOMIC. È stato aggiunto il parametro SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER per richiedere il dispositivo di output wl_output associato allo schermo in ambienti basati su Wayland.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster