Wydanie biblioteki multimediów SDL 2.0.22

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

Dodaj komentarz