Veröffentlichung der Multimedia-Bibliothek SDL 2.0.22

Die Bibliothek SDL 2.0.22 (Simple DirectMedia Layer) wurde veröffentlicht, um das Schreiben von Spielen und Multimedia-Anwendungen zu erleichtern. Die SDL-Bibliothek bietet Funktionen wie hardwarebeschleunigte Ausgabe von 2D- und 3D-Grafiken, Eingabeverarbeitung, Audiowiedergabe, 3D-Ausgabe über OpenGL/OpenGL ES/Vulkan und viele weitere unterstützende Operationen. Die Bibliothek ist in C geschrieben und steht unter der Zlib-Lizenz. Für die Nutzung der SDL-Funktionen in Projekten in verschiedenen Programmiersprachen werden die erforderlichen Bindings bereitgestellt.

In der neuen Version:

  • Die Unterstützung des Wayland-Protokolls wurde verbessert. Ursprünglich war geplant, in Umgebungen, die sowohl Wayland als auch X11 unterstützen, standardmäßig auf das Wayland-Protokoll umzusteigen, aber aufgrund von Problemen mit Wayland in Spielen und NVIDIA-Treibern wurde beschlossen, den Übergang zunächst zu verschieben (in Wayland-Umgebungen mit dem XWayland-Komponenten erfolgt die Ausgabe weiterhin über das X11-Protokoll). Um Wayland zu verwenden, kann vor dem Start der Anwendung die Umgebungsvariable „SDL_VIDEODRIVER=wayland“ festgelegt oder im Code die Funktion ‘SDL_SetHint(SDL_HINT_VIDEODRIVER, „wayland,x11“)’ vor dem Aufruf von SDL_Init() hinzugefügt werden. Für die Kompilierung mit Wayland ist mindestens die Version libwayland-client 1.18.0 erforderlich.
  • Die Funktion SDL_RenderGetWindow() wurde hinzugefügt, um das mit dem SDL-Renderer verbundene Fenster zu erhalten.
  • Ein Funktionssatz zum Manipulieren von rechteckigen Bereichen wurde hinzugefügt (Bestimmung des Punktes, Bereinigung, Vergleich, Vereinigung usw.), der mit Koordinaten und Größen auf der Basis von Gleitkommazahlen arbeitet: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon(), SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() und SDL_IntersectFRectAndLine().
  • Die Funktion SDL_IsTextInputShown() wurde hinzugefügt, um zu überprüfen, ob der Texteingabebereich angezeigt wird.
  • Die Funktion SDL_ClearComposition() wurde hinzugefügt, um den Texteingabebereich zu bereinigen, ohne die Eingabemethode (IME) zu deaktivieren.
  • Das Ereignis SDL_TEXTEDITING_EXT wurde hinzugefügt, um lange Texteingabebereiche zu verarbeiten, sowie der Hinweis SDL_HINT_IME_SUPPORT_EXTENDED_TEXT zur Aktivierung dieses Ereignisses.
  • Das Zeichen SDL_HINT_MOUSE_RELATIVE_MODE_CENTER wurde hinzugefügt, um die Maus nur auf das Zentrum des Fensters zu beschränken, anstatt auf das gesamte Fenster, wenn der relative Modus aktiviert ist.
  • Die automatische Erfassung der Maus wurde beim Drücken der Maustasten aktiviert. Um dies zu deaktivieren, wird der Hinweis SDL_HINT_MOUSE_AUTO_CAPTURE vorgeschlagen.
  • Die SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL- und SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN-Flags wurden hinzugefügt, um Informationen über die Verwendung von OpenGL oder Vulkan in einem externen Fenster zu übermitteln.
  • Das Flag SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE wurde hinzugefügt, um die Lieferung des SDL_QUIT-Ereignisses beim Schließen des letzten Anwendungsfensters zu aktivieren.
  • Das Flag SDL_HINT_JOYSTICK_ROG_CHAKRAM wurde hinzugefügt, um die ROG Chakram-Maus als Joystick zu behandeln.
  • Für Linux wurde das Flag SDL_HINT_X11_WINDOW_TYPE hinzugefügt, um den Fenstern den Parameter _NET_WM_WINDOW_TYPE zuzuweisen.
  • Für Linux wurde das Flag SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR hinzugefügt, um libdecor mit kompositorischen Servern, die xdg-decoration unterstützen.
  • Für Android wurde die Funktion SDL_AndroidSendMessage() implementiert, um beliebige Befehle an den SDL-Java-Handler zu senden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4