Veröffentlichung der Multimedia-Bibliothek SDL 2.0.18

Die Bibliothek SDL 2.0.18 (Simple DirectMedia Layer) wurde veröffentlicht, die darauf abzielt, das Schreiben von Spielen und Multimedia-Anwendungen zu vereinfachen. Die SDL-Bibliothek bietet Mittel wie hardwarebeschleunigte Ausgabe von 2D- und 3D-Grafik, Eingabeverarbeitung, Audiowiedergabe, 3D-Ausgabe über OpenGL/OpenGL ES/Vulkan und viele andere begleitende Operationen. Die Bibliothek ist in C geschrieben und wird unter der zlib-Lizenz vertrieben. Um die SDL-Funktionen in Projekten verschiedener Programmiersprachen zu nutzen, werden Bindings bereitgestellt. Der Quellcode der Bibliothek wird unter der Zlib-Lizenz vertrieben.

In der neuen Version:

  • Für jede Funktion sind Informationen über die Version von SDL angegeben, in der die Funktion eingeführt wurde. Eine automatische Synchronisation der Dokumentation auf der Wiki mit den Header-Dateien ist gewährleistet.
  • Neue Funktionen hinzugefügt:
    • SDL_RenderGeometry() und SDL_RenderGeometryRaw() zur Zeichnung beliebiger Formen mit der 2D Render API.
    • SDL_SetTextureUserData() und SDL_GetTextureUserData() zum Binden von Anwendungsdaten an eine Textur.
    • SDL_RenderWindowToLogical() und SDL_RenderLogicalToWindow() für die Umwandlung zwischen Fensterkoordinaten und logischen Rendering-Koordinaten.
    • SDL_RenderSetVSync() zur Aktivierung der Synchronisation der Ausgabe mit dem vertikalen Rückkehrimpuls (vblank).
    • SDL_PremultiplyAlpha() zur Anwendung von Transparenz auf Pixelblöcke im SDL_PIXELFORMAT_ARGB8888-Format.
    • SDL_SetWindowMouseRect() und SDL_GetWindowMouseRect() zur Begrenzung der Bewegung des Mauszeigers auf einen bestimmten Bereich des Fensters.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() und SDL_JoystickHasRumbleTriggers() zur Überprüfung der Unterstützung des adaptiven Vibrationsrades (Rumble) durch den Gamecontroller und das Joystick.
    • SDL_GetWindowICCProfile() zur Abfrage des Farb-ICC-Profils des Fensters (für die Überprüfung der Änderung des Profils wird das Ereignis SDL_WINDOWEVENT_ICCPROF_CHANGED vorgeschlagen).
  • Neue Hinweise hinzugefügt: SDL_HINT_APP_NAME zur Übermittlung von Informationen über den Namen der Anwendung und SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY zur Aktivierung von Transparenz für EGL-Fenster.
  • Ein neues Fensterereignis SDL_WINDOWEVENT_DISPLAY_CHANGED wurde hinzugefügt, das generiert wird, wenn der Bildschirm gewechselt wird, auf dem das Fenster angezeigt wird.
  • Es besteht die Möglichkeit, die genauen Parameter der Maus-Radbewegung mit den Feldern „preciseX“ und „preciseY“ in den Ereignisparametern zu definieren.
  • Die Funktion SDL_WaitEvent() wurde überarbeitet, um die CPU-Belastung zu reduzieren.
  • Die API hidapi wurde in die Kategorie Öffentlichkeit verschoben und ist jetzt über die Header-Datei SDL_hidapi.h verfügbar.
  • Auf der Windows-Plattform wurde die Erkennung der relativen Mausbewegung in Windows Remote Desktop verbessert. Ein Hinweis SDL_HINT_IME_SHOW_UI wurde hinzugefügt, um native UI-Komponenten anzuzeigen (standardmäßig ausgeblendet). Für UWP-Anwendungen wird anstelle von XInput WGI verwendet, um die Unterstützung von Eingabegeräten zu verbessern.
  • Für die Linux-Plattform wurden folgende Hinweise implementiert: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME zur Bindung von Aktionen, die beim Ausschalten des Bildschirmschoners angezeigt werden; SDL_HINT_LINUX_JOYSTICK_CLASSIC zur Auswahl, welches Gerät (/dev/input/js* oder /dev/input/event*) für den Joystick verwendet werden soll; SDL_HINT_JOYSTICK_DEVICE zur Festlegung des zu öffnenden Geräts für den Joystick. Eine Funktion SDL_LinuxSetThreadPriorityAndPolicy() wurde hinzugefügt, um die Priorität von Threads zu steuern.
  • Für die Android-Plattform wurde die Unterstützung für Audioausgabe und -aufnahme über die AAudio-API implementiert. Die Unterstützung des Steam Controllers ist standardmäßig deaktiviert (zum Aktivieren wird der Hinweis SDL_HINT_JOYSTICK_HIDAPI_STEAM vorgeschlagen).

Zusatz: Einer der SDL-Autoren, Ryan Gordon (icculus), hat angekündigt, eine einfache 3D-API in SDL hinzuzufügen, die die Fähigkeiten moderner GPUs (Vulkan, Direct3D 12, Metal) unterstützt. Diese Entwicklung wird von Epic Games im Rahmen des Epic Megagrant-Programms finanziert. Gordon hat im Mai 2021 einen Antrag auf das Stipendium eingereicht und vor zwei Wochen eine positive Rückmeldung erhalten.

Quelle: opennet.ru

60GB SSD 8Gb DDR4