SDL steht für Simple DirectMedia Layer und ist eine in C geschriebene Open-Source-Multimedia-Bibliothek, die über Direct3D und OpenGL einen Low-Level-Zugriff auf Maus, Tastatur, Audio, Joystick, 3D-Grafikhardware ermöglicht.
Wird in vielen Humble Bundle-Spielen oder im preisgekrönten Valve-Katalog verwendet
Heute wird SDL häufig von Emulatoren, Videowiedergabesoftware sowie zahlreichen populären Spielen genutzt, darunter der preisgekrönte Linux-Port "Civilization: Call To Powe", viele Humble Bundle-Spiele und der preisgekrönte Katalog von Valve.
Läuft auf allen Mainstream-Betriebssystemen
Simple DirectMedia Layer kann auf zahlreichen Betriebssystemen ausgeführt werden, einschließlich der gängigen GNU / Linux-, Microsoft Windows- und Mac OS X-Betriebssysteme. Die Betriebssysteme BeOS, BSD (FreeBSD, OpenBSD), BSD / OS, Solaris, IRIX, QNX sowie die mobilen Betriebssysteme Android und iOS werden ebenfalls unterstützt. Unterstützte Hardwareplattformen umfassen 32 und 64-Bit.
Erste Schritte mit SDL
SDL steht normalerweise auf zahlreichen Linux-Kernel-basierten Betriebssystemen über ihre offiziellen Software-Repositories zum Download bereit. Die Installation mit dem neuesten Quellpaket, das kostenlos auf Softoware verteilt wird, ist kinderleicht.
Laden und speichern Sie das Archiv in Ihrem Home-Verzeichnis, entpacken Sie es, öffnen Sie eine Terminal-App und navigieren Sie zu dem Speicherort, an dem Sie die Archivdatei extrahiert haben (z. B. cd /home/softoware/SDL2-2.0.3).
Führen Sie das & lsquo; ./ configure && make & rsquo; Befehl zum Konfigurieren, Optimieren und Kompilieren des Programms. Nach einer erfolgreichen Kompilierung führen Sie die "sudo make install & rsquo; Befehl als privilegierter Benutzer SDL systemweit zu installieren.
Unter der Haube
Ein kurzer Blick unter das SDL-Projekt zeigt uns, dass es in der Programmiersprache C geschrieben ist und nativ mit C ++ funktioniert. Bindungen für andere Programmiersprachen sind ebenfalls verfügbar und unterstützen das beliebte Python, & nbsp; Ada, Java, Lua, Eiffel, ML, PHP, Perl, Pike, Ruby und C #.
Was ist neu in dieser Version:
- Allgemein:
- Eine API zum Abrufen allgemeiner Dateisystempfade in SDL_filesystem.h wurde hinzugefügt: SDL_GetBasePath (), SDL_GetPrefPath ()
- Es wurde eine API hinzugefügt, um optimierte YV12- und IYUV-Texturaktualisierungen durchzuführen: SDL_UpdateYUVTexture ()
- Eine API wurde hinzugefügt, um die Menge an RAM auf dem System zu erhalten: SDL_GetSystemRAM ()
- Ein Makro wurde hinzugefügt, um Zeitstempelvergleiche mit SDL_GetTicks () durchzuführen: SDL_TICKS_PASSED ()
- Deutlich verbesserte OpenGL ES 2.0 Rendering-Leistung
- Hinzugefügtes OpenGL-Attribut SDL_GL_FRAMEBUFFER_SRGB_CAPABLE
- Linux:
- Die Float-Audiounterstützung mit dem PulseAudio-Treiber wurde behoben.
- Fehlende Linienendpunkte im OpenGL-Renderer einiger Treiber wurden behoben
- X11-Symbole sind nicht mehr definiert, um Kollisionen bei statischer Verknüpfung zu vermeiden.
- Android:
- WICHTIG: Sie MÜSSEN die aktualisierte SDLActivity.java mit dem C-Code abgleichen
- Die EGL-Initialisierung wurde in den systemeigenen Code verschoben
- Die Achsenrotation des Beschleunigungsmessers wurde relativ zur Gerätedrehung korrigiert
- Behobene Racebedingungen beim Behandeln des EGL-Kontextes bei Pause / Fortsetzen
- Touch-Geräte sind unmittelbar nach init für die Enumeration verfügbar
- Raspberry Pi:
- Zusätzliche Unterstützung für den Raspberry Pi, siehe README-raspberrypi.txt für Details
Was ist neu in Version 2.0.3:
- Allgemein:
- Eine API zum Abrufen allgemeiner Dateisystempfade in SDL_filesystem.h wurde hinzugefügt: SDL_GetBasePath (), SDL_GetPrefPath ()
- Es wurde eine API hinzugefügt, um optimierte YV12- und IYUV-Texturaktualisierungen durchzuführen: SDL_UpdateYUVTexture ()
- Eine API wurde hinzugefügt, um die Menge an RAM auf dem System zu erhalten: SDL_GetSystemRAM ()
- Ein Makro wurde hinzugefügt, um Zeitstempelvergleiche mit SDL_GetTicks () durchzuführen: SDL_TICKS_PASSED ()
- Deutlich verbesserte OpenGL ES 2.0 Rendering-Leistung
- Hinzugefügtes OpenGL-Attribut SDL_GL_FRAMEBUFFER_SRGB_CAPABLE
- Linux:
- Die Float-Audiounterstützung mit dem PulseAudio-Treiber wurde behoben.
- Fehlende Linienendpunkte im OpenGL-Renderer einiger Treiber wurden behoben
- X11-Symbole sind nicht mehr definiert, um Kollisionen bei statischer Verknüpfung zu vermeiden.
- Android:
- WICHTIG: Sie MÜSSEN die aktualisierte SDLActivity.java mit dem C-Code abgleichen
- Die EGL-Initialisierung wurde in den systemeigenen Code verschoben
- Die Achsenrotation des Beschleunigungsmessers wurde relativ zur Gerätedrehung korrigiert
- Behobene Racebedingungen beim Behandeln des EGL-Kontextes bei Pause / Fortsetzen
- Touch-Geräte sind unmittelbar nach init für die Enumeration verfügbar
- Raspberry Pi:
- Zusätzliche Unterstützung für den Raspberry Pi, siehe README-raspberrypi.txt für Details
Was ist neu in Version 1.2.14:
- Allgemeine Anmerkungen:
- Flackern beim Ändern der Größe des SDL-Fensters behoben
- Absturz in SDL_SetGammaRamp () behoben
- Fixiert Freeze in SDL_memset () mit 0 Länge, wenn Assembly-Code deaktiviert ist.
- SDL_DISABLE_LOCK_KEYS-Umgebungsvariable hinzugefügt, um normale Auf- / Ab-Ereignisse für Caps-Lock- und Num-Lock-Schlüssel zu ermöglichen.
- Problem bei der Audioqualität bei der Konvertierung zwischen 22050 Hz und 44100 Hz behoben.
- Ein Threading-Absturz wurde behoben, wenn einige Threads schnell erstellt und vervollständigt wurden.
- Erhöhte Genauigkeit der Alpha-Blending-Routinen.
- Fehler beim Laden von BMP-Dateien behoben, die mit invertierten Scanlinien gespeichert wurden.
- Korrektur der Mauskoordinatenklemmung, wenn SDL_SetVideoMode () nicht als Antwort auf das SDL_VIDEORESIZE-Ereignis aufgerufen wird.
- Doxylgen-Dokumentation für die SDL-API-Header hinzugefügt.
- Unix-Hinweise:
- Es wurde eine potenzielle Speicherbeschädigung aufgrund eines Assemblierungsfehlers mit SDL_revcpy () behoben
- Abstürze beim Erkennen von SSE-Funktionen in der x86_64-Architektur behoben.
- Feste Baugruppe für GCC optimierte 50% Alpha Blending Blits.
- Konfigurationsoption --enable-screensaver hinzugefügt, damit der Bildschirmschoner standardmäßig aktiviert werden kann.
- Verwenden Sie XResetScreenSaver (), anstatt den Bildschirmschoner vollständig zu deaktivieren.
- Die maximale Begrenzung der Fenstergröße für X11 wurde entfernt.
- Fixed SDL_GL_SWAP_CONTROL auf X11.
- Die Einstellung des X11-Fenstereingabehinweises wurde korrigiert.
- Behobenes verzerrtes X11 Fenstersymbol für einige Visuals.
- Erkennung von X11-Bibliotheken für dynamisches Laden unter 64-Bit-Linux behoben.
- SDL_GL_GetAttribute (SDL_GL_SWAP_CONTROL) gibt den korrekten Wert mit GLX_SGI_swap_control zurück.
- SDL_VIDEO_FULLSCREEN_DISPLAY als bevorzugtes Synonym für SDL_VIDEO_FULLSCREEN_HEAD auf X11 hinzugefügt.
- Die Umgebungsvariable SDL_VIDEO_FULLSCREEN_DISPLAY kann auf 0 gesetzt werden, um Vollbild-SDL-Fenster auf dem ersten Xinerama-Bildschirm zu platzieren.
- Die Umgebungsvariable SDL_VIDEO_FBCON_ROTATION wurde hinzugefügt, um die Ausgabeausrichtung auf der Framebuffer-Konsole zu steuern. Gültige Werte sind: nicht gesetzt - nicht rotierend, kein Schatten; & quot; KEINE & quot; - Nicht rotierend, aber immer noch mit Schatten; "CW" - Bildschirm im Uhrzeigersinn drehen; "UD" - Rotierender Bildschirm auf den Kopf gestellt; & ldquor; CCW & rdquo; - Bildschirm gegen den Uhrzeigersinn drehen.
- Behoben: DirectFB-Erkennung bei einigen Linux-Distributionen.
- Code zur Verwendung der PS3-SPE-Prozessoren für die YUV-Konvertierung unter Linux hinzugefügt.
- Aktualisierte ALSA-Unterstützung für die neueste stabile API
- ALSA wird jetzt gegenüber OSS-Audio bevorzugt. (SDL_AUDIODRIVER = dsp wird das vorherige Verhalten wiederherstellen.)
- Verbesserte Unterstützung für PulseAudio
- Die Unterstützung von Network Audio System wird jetzt zur Laufzeit dynamisch geladen.
- Absturz beim MP-8866 Dual USB Joypad bei neueren Linux-Kernen behoben.
- Absturz in SDL_Quit () behoben, wenn ein Joystick abgezogen wurde.
Kommentare nicht gefunden