Wydanie biblioteki multimediów SDL 2.0.18

Wydano bibliotekę SDL 2.0.18 (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. Dostępne są powiązania umożliwiające wykorzystanie możliwości SDL w projektach w różnych językach programowania. Kod biblioteki jest rozpowszechniany na licencji Zlib.

W nowym wydaniu:

  • Dla każdej funkcji podana jest informacja o wersji SDL, w której dana funkcja się pojawiła. Zapewniona jest automatyczna synchronizacja dokumentacji wiki z plikami nagłówkowymi.
  • Dodano nowe funkcje:
    • SDL_RenderGeometry() i SDL_RenderGeometryRaw() do renderowania dowolnych kształtów przy użyciu interfejsu API renderowania 2D.
    • SDL_SetTextureUserData() i SDL_GetTextureUserData() do powiązania danych aplikacji z teksturą.
    • SDL_RenderWindowToLogical() i SDL_RenderLogicalToWindow() do konwersji współrzędnych okna na logiczne współrzędne renderowania.
    • SDL_RenderSetVSync() aby włączyć synchronizację wyjścia z impulsem wygaszania pionowego (vblank).
    • SDL_PremultiplyAlpha(), aby zastosować przezroczystość do bloków pikseli w formacie SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() i SDL_GetWindowMouseRect() w celu ograniczenia ruchu kursora myszy do określonego obszaru okna.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() i SDL_JoystickHasRumbleTriggers() w celu sprawdzenia, czy kontroler gier i joystick obsługują adaptacyjny efekt wibracji (dudnienie)
    • SDL_GetWindowICCProfile() w celu pobrania profilu kolorów ICC okna (proponowane jest zdarzenie SDL_WINDOWEVENT_ICCPROF_CHANGED w celu sprawdzenia zmian w profilu).
  • Dodano nowe atrybuty: SDL_HINT_APP_NAME do przekazywania informacji o nazwie aplikacji oraz SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY do włączania przezroczystości okien EGL.
  • Dodano nowe zdarzenie okna SDL_WINDOWEVENT_DISPLAY_CHANGED, które jest generowane w przypadku zmiany ekranu, na którym wyświetlane jest okno.
  • Dokładne parametry ruchu kółka myszy można zdefiniować za pomocą pól „preciseX” i „preciseY” w parametrach zdarzenia.
  • Funkcja SDL_WaitEvent() została przeprojektowana w celu zmniejszenia obciążenia procesora.
  • Interfejs API hidapi został przeniesiony do kategorii publicznej i jest teraz dostępny poprzez plik nagłówkowy SDL_hidapi.h.
  • Na platformie Windows poprawiono wykrywanie względnego ruchu myszy w Pulpicie zdalnym systemu Windows. Dodano atrybut SDL_HINT_IME_SHOW_UI, aby pokazać natywne komponenty interfejsu (domyślnie ukryte). W przypadku aplikacji UWP zamiast XInput używa się WGI, aby poprawić obsługę kontrolerów wejściowych.
  • Dla platformy Linux zaimplementowano następujące atrybuty: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME dla powiązania akcji wyświetlanych, gdy wygaszacz ekranu jest wyłączony; SDL_HINT_LINUX_JOYSTICK_CLASSIC, aby wybrać urządzenie (/dev/input/js* lub /dev/input/event*), którego ma używać joystick; SDL_HINT_JOYSTICK_DEVICE, aby ustawić urządzenie tak, aby otwierało się za pomocą joysticka. Dodano funkcję SDL_LinuxSetThreadPriorityAndPolicy() do kontrolowania priorytetyzacji wątków.
  • Dla platformy Android zaimplementowano obsługę wyjścia audio i przechwytywania za pomocą interfejsu API AAudio. Domyślnie obsługa Steam Controllera jest wyłączona (zasugerowano włączenie flagi SDL_HINT_JOYSTICK_HIDAPI_STEAM).

Dodatek: Jeden z autorów SDL, Ryan Gordon (icculus), powiedział, że planuje dodać do SDL proste API 3D, które obsługuje możliwości API nowoczesnych procesorów graficznych (Vulkan, Direct3D 12, Metal). Rozwój ten sfinansuje firma Epic Games w ramach programu Epic Megagrant. Gordon złożył wniosek o dofinansowanie w maju 2021 r., a dwa tygodnie temu otrzymał pozytywną odpowiedź.

Źródło: opennet.ru

Dodaj komentarz