Wydanie biblioteki SDL 2.0.22 (Simple DirectMedia Layer) ma na celu uproszczenie pisania gier i aplikacji multimedialnych. Biblioteka SDL zapewnia takie funkcje, jak sprzętowo przyspieszony rendering grafiki 2D i 3D, obsługę wejścia, odtwarzanie dźwięku, wyjście 3D przez OpenGL/OpenGL ES/Vulkan oraz wiele innych powiązanych operacji. Biblioteka jest napisana w języku C i jest dystrybuowana na licencji Zlib. Aby korzystać z możliwości SDL w projektach w różnych językach programowania, dostarczane są odpowiednie powiązania.
W nowym wydaniu:
- Ulepszono wsparcie dla protokołu Wayland. Początkowo planowano przejście na domyślne użycie protokołu Wayland w środowiskach, które jednocześnie wspierają Wayland i X11, jednak z powodu problemów związanych z Wayland w grach i sterownikach NVIDIA, postanowiono wstrzymać tę zmianę (w środowiskach Wayland z komponentem XWayland wyjście odbywa się nadal za pomocą protokołu X11). Aby korzystać z Wayland, przed uruchomieniem aplikacji można ustawić zmienną środowiskową „SDL_VIDEODRIVER=wayland” lub dodać do kodu funkcję ‘SDL_SetHint(SDL_HINT_VIDEODRIVER, „wayland,x11”)’ przed wywołaniem SDL_Init(). Do kompilacji z Wayland wymagana jest co najmniej wersja libwayland-client 1.18.0.
- Dodano funkcję SDL_RenderGetWindow() do uzyskania okna skojarzonego z rendererem SDL.
- Dodano zestaw funkcji do manipulacji prostokątnymi obszarami (określenie przynależności punktów, czyszczenie, porównywanie, łączenie itp.), operując na współrzędnych i rozmiarach na podstawie liczb zmiennoprzecinkowych: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon(), SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() oraz SDL_IntersectFRectAndLine().
- Dodano funkcję SDL_IsTextInputShown() do sprawdzenia, czy pole wprowadzania tekstu jest wyświetlane.
- Dodano funkcję SDL_ClearComposition() do czyszczenia pola wprowadzania tekstu bez wyłączania metody wprowadzania (IME).
- Dodano zdarzenie SDL_TEXTEDITING_EXT do obsługi długich obszarów wprowadzania tekstu oraz wskaźnik SDL_HINT_IME_SUPPORT_EXTENDED_TEXT do włączenia tego zdarzenia.
- Dodano wskaźnik SDL_HINT_MOUSE_RELATIVE_MODE_CENTER do ograniczenia ruchu myszy tylko do centrum okna zamiast całego okna w trybie względnym.
- Włączono automatyczne przechwytywanie myszy po naciśnięciu przycisków myszy. Aby to wyłączyć, zaproponowano wskaźnik SDL_HINT_MOUSE_AUTO_CAPTURE.
- Dodano wsparcie dla SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL i SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN do przekazywania informacji o użyciu OpenGL lub Vulkan w zewnętrznym oknie.
- Dodano flagę SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE do aktywacji zdarzenia SDL_QUIT przy zamykaniu ostatniego okna aplikacji.
- Dodano flagę SDL_HINT_JOYSTICK_ROG_CHAKRAM do obsługi myszy ROG Chakram jako joysticka.
- Dla systemu Linux dodano flagę SDL_HINT_X11_WINDOW_TYPE do ustawienia parametru _NET_WM_WINDOW_TYPE dla okien.
- Dla systemu Linux dodano flagę SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR do użycia libdecor z kompozytorami serwerami, które obsługują xdg-decoration.
- Dla systemu Android wdrożono funkcję SDL_AndroidSendMessage() do wysyłania dowolnego polecenia do handlera Java SDL.
Źródło: opennet.ru
