Została wydana biblioteka SDL 2.0.18 (Simple DirectMedia Layer), mająca na celu uproszczenie pisania gier i aplikacji multimedialnych. Biblioteka SDL zapewnia takie narzędzia jak sprzętowo przyspieszony wyjście grafiki 2D i 3D, obsługa wejścia, odtwarzanie dźwięku, wyprowadzanie 3D przez OpenGL/OpenGL ES/Vulkan oraz wiele innych operacji towarzyszących. Biblioteka została napisana w języku C i jest rozpowszechniana na licencji zlib. Aby wykorzystać możliwości SDL w projektach na różnych językach programowania, dostępne są wiązania. Kod biblioteki jest rozpowszechniany na licencji Zlib.
W nowym wydaniu:
- Dla każdej funkcji udostępniono informacje o wersji SDL, w której ta funkcja się pojawiła. Zapewniono automatyczną synchronizację dokumentacji w wiki z plikami nagłówkowymi.
- Dodano nowe funkcje:
- SDL_RenderGeometry() i SDL_RenderGeometryRaw() do rysowania dowolnych kształtów za pomocą 2D Render API.
- SDL_SetTextureUserData() i SDL_GetTextureUserData() do powiązania danych aplikacji z teksturą.
- SDL_RenderWindowToLogical() i SDL_RenderLogicalToWindow() do konwersji między współrzędnymi okna a logicznymi współrzędnymi rysowania.
- SDL_RenderSetVSync() do włączenia synchronizacji wyjścia z impulsem uśpienia klatek (vblank).
- SDL_PremultiplyAlpha() do zastosowania przezroczystości do bloków pikseli w formacie SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() i SDL_GetWindowMouseRect() do ograniczenia ruchu kursora myszy do określonego obszaru okna.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() i SDL_JoystickHasRumbleTriggers() do sprawdzania wsparcia dla efektu adaptacyjnego wibracji (rumble) w kontrolerze gier i dżojstiku.
- SDL_GetWindowICCProfile() do uzyskania kolorowego profilu ICC okna (w celu sprawdzenia zmiany profilu zaproponowano zdarzenie SDL_WINDOWEVENT_ICCPROF_CHANGED).
- Dodano nowe wskazówki: SDL_HINT_APP_NAME do przekazywania informacji o nazwie aplikacji oraz SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY do włączenia przezroczystości dla okien EGL.
- Dodano nowe zdarzenie okna SDL_WINDOWEVENT_DISPLAY_CHANGED, które jest generowane podczas zmiany ekranu, na którym wyświetlane jest okno.
- Umożliwiono określenie dokładnych parametrów ruchu koła myszy za pomocą pól „preciseX” i „preciseY” w parametrach zdarzenia.
- Funkcja SDL_WaitEvent() została przekształcona w celu zmniejszenia obciążenia CPU.
- API hidapi przeniesiono do kategorii publicznych i teraz jest dostępne przez plik nagłówkowy SDL_hidapi.h.
- Na platformie Windows poprawiono określanie względnego ruchu myszki w Windows Remote Desktop. Dodano parametr SDL_HINT_IME_SHOW_UI do wyświetlania natywnych komponentów interfejsu (domyślnie są one ukryte). Dla aplikacji UWP zamiast XInput wykorzystano WGI, aby poprawić wsparcie dla kontrolerów wejścia.
- Dla platformy Linux wprowadzono parametry: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME do powiązania działań wyświetlanych przy wyłączonym wygaszaczu ekranu; SDL_HINT_LINUX_JOYSTICK_CLASSIC do wyboru, które z urządzeń (/dev/input/js* lub /dev/input/event*) użyć dla joysticka; SDL_HINT_JOYSTICK_DEVICE do ustawienia urządzenia otwieranego dla joysticka. Dodano funkcję SDL_LinuxSetThreadPriorityAndPolicy() do zarządzania priorytetami wątków.
- Dla platformy Android wprowadzono wsparcie dla wyjścia i przechwytywania dźwięku za pomocą API AAudio. Domyślnie wsparcie dla kontrolera Steam Controller jest wyłączone (do włączenia proponowany jest parametr SDL_HINT_JOYSTICK_HIDAPI_STEAM).
Uzupełnienie: Jeden z autorów SDL, Ryan Gordon (icculus), poinformował, że planuje dodać do SDL prosty API 3D, wspierający możliwości nowoczesnych GPU (Vulkan, Direct3D 12, Metal). Rozwój ten będzie finansowany przez firmę Epic Games w ramach programu Epic Megagrant. Wniosek o grant Gordon złożył w maju 2021 roku, a dwa tygodnie temu otrzymał pozytywną odpowiedź.
Źródło: opennet.ru
