Oyunların və multimedia proqramlarının yazılmasını sadələşdirməyə yönəlmiş SDL 2.0.18 (Simple DirectMedia Layer) kitabxanası buraxıldı. SDL kitabxanası aparat tərəfindən sürətləndirilmiş 2D və 3D qrafika çıxışı, daxiletmənin işlənməsi, audionun oxudulması, OpenGL/OpenGL ES/Vulkan vasitəsilə 3D çıxışı və bir çox digər əlaqəli əməliyyatlar kimi alətlər təqdim edir. Kitabxana C dilində yazılmışdır və zlib lisenziyası ilə paylanır. Müxtəlif proqramlaşdırma dillərində layihələrdə SDL imkanlarından istifadə etmək üçün bağlamalar təmin edilir. Kitabxana kodu Zlib lisenziyası əsasında paylanır.
Yeni buraxılışda:
- Hər bir funksiya üçün funksiyanın göründüyü SDL versiyası haqqında məlumat verilir. Başlıq faylları ilə viki sənədlərinin avtomatik sinxronlaşdırılması təmin edilir.
- Yeni funksiyalar əlavə edildi:
- SDL_RenderGeometry() və SDL_RenderGeometryRaw() 2D Render API istifadə edərək ixtiyari formaların göstərilməsi üçün.
- SDL_SetTextureUserData() və SDL_GetTextureUserData() proqram məlumatlarını fakturaya bağlamaq üçün.
- SDL_RenderWindowToLogical() və SDL_RenderLogicalToWindow() pəncərə koordinatları və məntiqi render koordinatları arasında çevirmək üçün.
- SDL_RenderSetVSync() şaquli boşalma impulsu (vblank) ilə çıxış sinxronizasiyasını aktivləşdirmək üçün.
- SDL_PremultiplyAlpha() SDL_PIXELFORMAT_ARGB8888 formatında piksel bloklarına şəffaflıq tətbiq etmək.
- SDL_SetWindowMouseRect() və SDL_GetWindowMouseRect() siçan kursorunun hərəkətini pəncərənin müəyyən edilmiş sahəsinə məhdudlaşdırmaq üçün.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() və SDL_JoystickHasRumbleTriggers() oyun nəzarətçisi və joystikin adaptiv vibrasiya effektini (guruldama) dəstəklədiyini yoxlamaq üçün
- Pəncərənin ICC rəng profilini əldə etmək üçün SDL_GetWindowICCCProfile() (profil dəyişikliklərini yoxlamaq üçün SDL_WINDOWEVENT_ICCPROF_CHANGED hadisəsi təklif olunur).
- Yeni atributlar əlavə edildi: proqram adı haqqında məlumat ötürmək üçün SDL_HINT_APP_NAME və EGL pəncərələri üçün şəffaflığı aktivləşdirmək üçün SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY.
- Pəncərənin göstərildiyi ekran dəyişdikdə yaradılan SDL_WINDOWEVENT_DISPLAY_CHANGED adlı yeni pəncərə hadisəsi əlavə edildi.
- Hadisə parametrlərindəki “preciseX” və “preciseY” sahələrindən istifadə etməklə siçan təkərinin hərəkətinin dəqiq parametrlərini müəyyən etmək mümkündür.
- SDL_WaitEvent() funksiyası CPU yükünü azaltmaq üçün yenidən işlənib.
- Hidapi API ictimai kateqoriyaya köçürülüb və indi SDL_hidapi.h başlıq faylı vasitəsilə əlçatandır.
- Windows platformasında, Uzaqdan Windows Masaüstündə nisbi siçan hərəkətinin aşkarlanması təkmilləşdirilmişdir. Doğma interfeys komponentlərini göstərmək üçün SDL_HINT_IME_SHOW_UI atributu əlavə edildi (defolt olaraq gizlidir). UWP proqramları üçün giriş nəzarətçiləri üçün dəstəyi yaxşılaşdırmaq üçün XInput əvəzinə WGI istifadə olunur.
- Linux platforması üçün aşağıdakı atributlar tətbiq edilmişdir: Ekran qoruyucusu deaktiv edildikdə göstərilən məcburi hərəkətlər üçün SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME; joystik üçün hansı cihazı (/dev/input/js* və ya /dev/input/event*) seçmək üçün SDL_HINT_LINUX_JOYSTICK_CLASSIC; Cihazı joystik üçün açmaq üçün SDL_HINT_JOYSTICK_DEVICE. Mövzunun prioritetləşdirilməsinə nəzarət etmək üçün SDL_LinuxSetThreadPriorityAndPolicy() funksiyası əlavə edildi.
- Android platforması üçün AAudio API istifadə edərək səs çıxışı və çəkiliş dəstəyi həyata keçirilib. Varsayılan olaraq, Buxar Nəzarətçisi üçün dəstək deaktivdir (aktiv etmək üçün SDL_HINT_JOYSTICK_HIDAPI_STEAM bayrağı təklif edilmişdir).
Əlavə: SDL müəlliflərindən biri Rayan Qordon (icculus) SDL-ə müasir GPU-ların (Vulkan, Direct3D 3, Metal) API imkanlarını dəstəkləyən sadə 12D API əlavə etməyi planlaşdırdığını bildirib. Bu inkişaf Epic Megagrant proqramının bir hissəsi olaraq Epic Games tərəfindən maliyyələşdiriləcək. Gordon 2021-ci ilin may ayında qrant üçün ərizə təqdim etdi və iki həftə əvvəl müsbət cavab aldı.
Mənbə: opennet.ru