Wydano bibliotekę SDL 2.0.22 (Simple DirectMedia Layer), mającą na celu uproszczenie pisania gier i aplikacji multimedialnych. Biblioteka SDL udostępnia narzędzia, takie jak przyspieszane sprzętowo wyjście grafiki 2D i 3D, przetwarzanie sygnału wejściowego, odtwarzanie dźwięku, wyjście 3D poprzez OpenGL/OpenGL ES/Vulkan i wiele innych powiązanych operacji. Biblioteka jest napisana w języku C i rozpowszechniana na licencji Zlib. Aby wykorzystać możliwości SDL w projektach w różnych językach programowania, zapewnione są niezbędne powiązania.
W nowym wydaniu:
- Ulepszona obsługa protokołu Wayland. Początkowo planowano przejście na korzystanie z protokołu Wayland domyślnie w środowiskach zapewniających jednoczesną obsługę Waylanda i X11, jednak ze względu na problemy związane z Waylandem w grach i sterownikami NVIDIA zdecydowano się na przełożenie przejścia (w środowiskach Wayland z komponent XWayland, dane wyjściowe przy użyciu protokołu X11). Aby używać Waylanda, możesz ustawić zmienną środowiskową „SDL_VIDEODRIVER=wayland” przed uruchomieniem aplikacji lub dodać funkcję „SDL_SetHint(SDL_HINT_VIDEODRIVER, „wayland,x11”)” do kodu przed wywołaniem SDL_Init(). Kompilacja z Waylandem wymaga wersji klienta libwayland co najmniej 1.18.0.
- Dodano funkcję SDL_RenderGetWindow(), aby uzyskać okno powiązane z modułem renderującym SDL.
- Dodano zestaw funkcji do manipulacji obszarami prostokątnymi (ustalanie występowania punktów, czyszczenie, porównywanie, łączenie itp.), operujących współrzędnymi i rozmiarami w oparciu o liczby zmiennoprzecinkowe: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon () , SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() i SDL_IntersectFRectAndLine().
- Dodano funkcję SDL_IsTextInputShown() sprawdzającą, czy wyświetlany jest obszar wprowadzania tekstu.
- Dodano funkcję SDL_ClearComposition() w celu wyczyszczenia obszaru wprowadzania tekstu bez wyłączania metody wprowadzania (IME).
- Dodano zdarzenie SDL_TEXTEDITING_EXT do obsługi obszarów wprowadzania długiego tekstu i flagę SDL_HINT_IME_SUPPORT_EXTENDED_TEXT włączającą to zdarzenie.
- Dodano flagę SDL_HINT_MOUSE_RELATIVE_MODE_CENTER, aby umożliwić ograniczenie myszy tylko do środka okna zamiast do całego okna, gdy włączony jest tryb względny.
- Włączono automatyczne przechwytywanie myszy podczas naciskania przycisków myszy. Aby to wyłączyć, proponowana jest flaga SDL_HINT_MOUSE_AUTO_CAPTURE.
- Dodano flagi SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL i SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN do przekazywania informacji o użyciu OpenGL lub Vulkan w oknie zewnętrznym.
- Dodano flagę SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE, aby umożliwić dostarczenie zdarzenia SDL_QUIT po zamknięciu ostatniego okna aplikacji.
- Dodano flagę SDL_HINT_JOYSTICK_ROG_CHAKRAM, aby traktować mysz ROG Chakram jako joystick.
- W systemie Linux dodano atrybut SDL_HINT_X11_WINDOW_TYPE, aby ustawić parametr _NET_WM_WINDOW_TYPE na wartość Windows.
- Dla systemu Linux dodano flagę SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR umożliwiającą używanie biblioteki libdecor z serwerami złożonymi obsługującymi xdg-decoration.
- W systemie Android zaimplementowano funkcję SDL_AndroidSendMessage() w celu wysłania dowolnego polecenia do procedury obsługi SDL Java.
Źródło: opennet.ru