A avut loc lansarea bibliotecii SDL 2.0.18 (Simple DirectMedia Layer), destinată simplificării scrierii jocurilor și aplicațiilor multimedia. Biblioteca SDL oferă unelte precum redare grafică 2D și 3D accelerată hardware, procesare a input-ului, redare a sunetului, afișare 3D prin OpenGL/OpenGL ES/Vulkan și numeroase alte operațiuni aferente. Biblioteca este scrisă în limbajul C și este distribuită sub licența zlib. Pentru utilizarea funcțiilor SDL în proiecte scrise în diverse limbaje de programare sunt disponibile binding-uri. Codul bibliotecii este distribuit sub licența Zlib.
În noua versiune:
- Pentru fiecare funcție este furnizată informația despre versiunea SDL în care a apărut acea funcție. Documentația din wiki este sincronizată automat cu fișierele header.
- Au fost adăugate funcții noi:
- SDL_RenderGeometry() și SDL_RenderGeometryRaw() pentru desenarea formelor arbitrare folosind API-ul de redare 2D.
- SDL_SetTextureUserData() și SDL_GetTextureUserData() pentru a lega datele aplicației de textură.
- SDL_RenderWindowToLogical() și SDL_RenderLogicalToWindow() pentru a transforma între coordonatele ferestrei și coordonatele logice de redare.
- SDL_RenderSetVSync() pentru a activa sincronizarea redării cu impulsurile de vblank.
- SDL_PremultiplyAlpha() pentru a aplica transparența blocurilor de pixeli în format SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() și SDL_GetWindowMouseRect() pentru a restricționa mișcarea cursorului de mouse într-o zonă specificată a ferestrei.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() și SDL_JoystickHasRumbleTriggers() pentru a verifica suportul efectului de vibrație adaptivă (rumble) de către controllerul de joc și joystick.
- SDL_GetWindowICCProfile() pentru a obține profilul de culoare ICC al ferestrei (o eveniment SDL_WINDOWEVENT_ICCPROF_CHANGED este generat pentru a verifica modificarea profilului).
- Au fost adăugate noi sugestii: SDL_HINT_APP_NAME pentru a transmite informații despre numele aplicației și SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY pentru a activa transparența pentru feronii EGL.
- A fost adăugat un nou eveniment al ferestrei SDL_WINDOWEVENT_DISPLAY_CHANGED, care este generat atunci când se schimbă ecranul pe care este afișată fereastra.
- S-a oferit posibilitatea de a determina parametrii exacți ai mișcării rotiței de mouse prin intermediul câmpurilor „preciseX” și „preciseY” în parametrii evenimentului.
- Funcția SDL_WaitEvent() a fost reconfigurată pentru a reduce sarcina pe CPU.
- API-ul hidapi a fost mutat în categoria publică și acum este accesibil prin fișierul header SDL_hidapi.h.
- Pe platforma Windows, a fost îmbunătățită determinarea mișcării relative a mouse-ului în Windows Remote Desktop. A fost adăugat indiciul SDL_HINT_IME_SHOW_UI pentru a afișa componentele native ale interfeței (în mod implicit sunt ascunse). Pentru aplicațiile UWP, în loc de XInput, a fost utilizat WGI pentru a îmbunătăți suportul pentru controlerele de intrare.
- Pentru platforma Linux, au fost implementate indiciile: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME pentru a lega acțiunile afișate la dezactivarea salvatorului de ecran; SDL_HINT_LINUX_JOYSTICK_CLASSIC pentru a alege care dintre dispozitive ( /dev/input/js* sau /dev/input/event*) să fie utilizat pentru joystick; SDL_HINT_JOYSTICK_DEVICE pentru a stabili dispozitivul deschis pentru joystick. A fost adăugată funcția SDL_LinuxSetThreadPriorityAndPolicy() pentru gestionarea priorităților pentru fire.
- Pentru platforma Android, a fost implementat suportul pentru redarea și captarea sunetului prin API AAudio. Suportul pentru controllerul Steam Controller este dezactivat în mod implicit (pentru activare, s-a propus indiciul SDL_HINT_JOYSTICK_HIDAPI_STEAM).
Supliment: Unul dintre autorii SDL, Ryan Gordon (icculus), a anunțat că plănuiește să adauge în SDL un API 3D simplu, care să suporte capabilitățile API-urilor GPU moderne (Vulkan, Direct3D 12, Metal). Această dezvoltare va fi finanțată de compania Epic Games, în cadrul programului Epic Megagrant. Gordon a depus cererea de grant în mai 2021, iar acum două săptămâni a primit un răspuns pozitiv.
Sursa: opennet.ro
