Выпуск мультымедыйнай бібліятэкі SDL 2.0.18

Адбыўся рэліз бібліятэкі SDL 2.0.18 (Simple DirectMedia Layer), накіраванай на спрашчэнне напісання гульняў і мультымедыйных прыкладанняў. Бібліятэка SDL падае такія сродкі як апаратна-паскораная выснова 2D- і 3D-графікі, апрацоўка ўводу, прайграванне гуку, выснова 3D праз OpenGL/OpenGL ES/Vulkan і мноства іншых спадарожных аперацый. Бібліятэка напісана на мове Сі і распаўсюджваецца пад ліцэнзіяй zlib. Для выкарыстання магчымасцяў SDL у праектах на розных мовах праграмавання даюцца біндынгі. Код бібліятэкі распаўсюджваецца пад ліцэнзіяй Zlib.

У новым выпуску:

  • Для кожнай функцыі прадстаўлена інфармацыя аб версіі SDL, у якой дадзеная функцыя з'явілася. Забяспечана аўтаматычная сінхранізацыя дакументацыі ў wiki з загалоўкавымі файламі.
  • Дададзены новыя функцыі:
    • SDL_RenderGeometry() і SDL_RenderGeometryRaw() для адмалёўкі адвольных фігур пры дапамозе 2D Render API.
    • SDL_SetTextureUserData() і SDL_GetTextureUserData() для прывязкі дадзеных дадатку да тэкстуры.
    • SDL_RenderWindowToLogical() і SDL_RenderLogicalToWindow() для пераўтварэння паміж каардынатамі акна і лагічнымі каардынатамі адмалёўкі.
    • SDL_RenderSetVSync() для ўключэння сінхранізацыі высновы з кадравым які гасіць імпульсам (vblank).
    • SDL_PremultiplyAlpha() для прымянення празрыстасці да блокаў пікселяў у фармаце SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() і SDL_GetWindowMouseRect() для абмежавання руху курсора мышы зададзенай вобласцю акна.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() і SDL_JoystickHasRumbleTriggers() для праверкі падтрымкі гульнявым кантролерам і джойсцікам эфекту адаптыўнай вібрацыі (rumble)
    • SDL_GetWindowICCProfile() для атрымання каляровага ICC-профіля акна (для праверкі змены профіля прапанавана падзея SDL_WINDOWEVENT_ICCPROF_CHANGED).
  • Дададзены новыя прыкметы: SDL_HINT_APP_NAME для перадачы звестак аб назове прыкладання і SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY для ўключэння празрыстасці для вокнаў EGL.
  • Дададзена новая падзея акна SDL_WINDOWEVENT_DISPLAY_CHANGED, якое генеруецца пры змене экрана, на якім паказваецца акно.
  • Прадастаўлена магчымасць вызначэння дакладных параметраў руху кола мышы пры дапамозе палёў "preciseX" і "preciseY" у параметрах падзеі.
  • Функцыя SDL_WaitEvent() перапрацавана для зніжэння нагрузкі на CPU.
  • API hidapi пераведзены ў катэгорыю публічных і зараз даступны праз загалоўкавых файлаў SDL_hidapi.h.
  • На платформе Windows палепшана вызначэнне адноснага руху мышы ў Windows Remote Desktop. Дададзена прыкмета SDL_HINT_IME_SHOW_UI для паказу родных кампанентаў інтэрфейсу (па змаўчанні хаваюцца). Для UWP-прыкладанняў замест XInput задзейнічаны WGI для паляпшэння падтрымкі кантролераў уводу.
  • Для платформы Linux рэалізаваны прыкметы: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME для прывязкі дзеянняў, якія адлюстроўваюцца пры адключэнні захавальніка экрана; SDL_HINT_LINUX_JOYSTICK_CLASSIC для выбару якую з прылад (/dev/input/js* або /dev/input/event*) выкарыстоўваць для джойсціка; SDL_HINT_JOYSTICK_DEVICE для ўсталёўкі прылады, адчынянага для джойсціка. Дададзена функцыя SDL_LinuxSetThreadPriorityAndPolicy() для кіравання расстаноўкі прыярытэтаў для патокаў.
  • Для платформы Android рэалізавана падтрымка вываду і захопу гуку пры дапамозе API AAudio. Па змаўчанні адключаная падтрымка кантролера Steam Controller (для ўключэння прапанаваны прыкмета SDL_HINT_JOYSTICK_HIDAPI_STEAM).

Дадатак: Адзін з аўтараў SDL Раян Гордан (icculus) паведаміў, што плануе дадаць у SDL просты 3D API, які падтрымлівае магчымасці API сучасных GPU (Vulkan, Direct3D 12, Metal). Фінансаваць гэтую распрацоўку будзе кампанія Epic Games, у рамках праграмы Epic Megagrant. Заяўку на грант Гордан падаў у траўні 2021 года, а два тыдні таму атрымаў станоўчы адказ.

Крыніца: opennet.ru

Дадаць каментар