U lëshua biblioteka SDL 2.0.18 (Simple DirectMedia Layer), që synon të thjeshtojë shkrimin e lojërave dhe aplikacioneve multimediale. Biblioteka SDL ofron mjete të tilla si dalje grafike 2D dhe 3D të përshpejtuar nga hardueri, përpunimi i hyrjes, riprodhimi audio, dalje 3D nëpërmjet OpenGL/OpenGL ES/Vulkan dhe shumë operacione të tjera të lidhura. Biblioteka është shkruar në C dhe shpërndahet nën licencën zlib. Lidhjet ofrohen për të përdorur aftësitë SDL në projekte në gjuhë të ndryshme programimi. Kodi i bibliotekës shpërndahet nën licencën Zlib.
Në publikimin e ri:
- Për secilin funksion, jepet informacion në lidhje me versionin SDL në të cilin u shfaq funksioni. Sigurohet sinkronizimi automatik i dokumentacionit wiki me skedarët e kokës.
- Karakteristika të reja të shtuara:
- SDL_RenderGeometry() dhe SDL_RenderGeometryRaw() për paraqitjen e formave arbitrare duke përdorur API-në 2D Render.
- SDL_SetTextureUserData() dhe SDL_GetTextureUserData() për të lidhur të dhënat e aplikacionit në një teksturë.
- SDL_RenderWindowToLogical() dhe SDL_RenderLogicalToWindow() për të kthyer në mes të koordinatave të dritares dhe koordinatave të paraqitjes logjike.
- SDL_RenderSetVSync() për të mundësuar sinkronizimin e daljes me pulsin vertikal të zbrazjes (vblank).
- SDL_PremultiplyAlpha() për të aplikuar transparencë në blloqe pikselësh në formatin SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() dhe SDL_GetWindowMouseRect() për të kufizuar lëvizjen e kursorit të miut në një zonë të caktuar të dritares.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() dhe SDL_JoystickHasRumbleTriggers() për të kontrolluar nëse kontrolluesi dhe leva e lojës mbështesin efektin e dridhjeve adaptive (gjumbullim)
- SDL_GetWindowICCProfile() për të marrë profilin e ngjyrave ICC të dritares (ngjarja SDL_WINDOWEVENT_ICCPROF_CHANGED propozohet për të kontrolluar ndryshimet e profilit).
- Janë shtuar atribute të reja: SDL_HINT_APP_NAME për të përcjellë informacione rreth emrit të aplikacionit dhe SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY për të mundësuar transparencën për dritaret EGL.
- U shtua një ngjarje e re e dritares, SDL_WINDOWEVENT_DISPLAY_CHANGED, e cila krijohet kur ndryshon ekrani në të cilin shfaqet dritarja.
- Është e mundur të përcaktohen parametrat e saktë të lëvizjes së rrotës së miut duke përdorur fushat "preciseX" dhe "preciseY" në parametrat e ngjarjes.
- Funksioni SDL_WaitEvent() është ridizajnuar për të reduktuar ngarkesën e CPU-së.
- API hidapi është zhvendosur në kategorinë publike dhe tani është i disponueshëm përmes skedarit të kokës SDL_hidapi.h.
- Në platformën Windows, zbulimi i përmirësuar i lëvizjes relative të miut në Desktopin në distancë të Windows. U shtua atributi SDL_HINT_IME_SHOW_UI për të shfaqur komponentët e ndërfaqes vendase (të fshehura si parazgjedhje). Për aplikacionet UWP, WGI përdoret në vend të XInput për të përmirësuar mbështetjen për kontrollorët e hyrjes.
- Për platformën Linux, atributet e mëposhtme janë zbatuar: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME për veprimet lidhëse që shfaqen kur ruajtësi i ekranit është i çaktivizuar; SDL_HINT_LINUX_JOYSTICK_CLASSIC për të zgjedhur cilën pajisje (/dev/input/js* ose /dev/input/event*) të përdoret për levë; SDL_HINT_JOYSTICK_DEVICE për të vendosur pajisjen që të hapet për levë. U shtua funksioni SDL_LinuxSetThreadPriorityAndPolicy() për të kontrolluar prioritizimin e temave.
- Për platformën Android, është zbatuar mbështetje për daljen dhe kapjen e audios duke përdorur API AAudio. Si parazgjedhje, mbështetja për Kontrolluesin e Steam është i çaktivizuar (flamuri SDL_HINT_JOYSTICK_HIDAPI_STEAM është sugjeruar për aktivizim).
Shtim: Një nga autorët e SDL, Ryan Gordon (icculus), tha se ai planifikon të shtojë një API të thjeshtë 3D në SDL që mbështet aftësitë API të GPU-ve moderne (Vulkan, Direct3D 12, Metal). Ky zhvillim do të financohet nga Epic Games si pjesë e programit Epic Megagrant. Gordon paraqiti një kërkesë për grant në maj 2021, dhe dy javë më parë mori një përgjigje pozitive.
Burimi: opennet.ru