Einfache Schicht von DirectMedia

Simple DirectMedia Layer (SDL) ist eine Quer-Plattform, freie und offene Quellmultimediabibliothek, die in C geschrieben ist, der eine einfache Schnittstelle der Grafik der verschiedenen Plattformen, Ton und Eingangsgeräten präsentiert.

SDL hat das Wort "Schicht" in seinem Titel, weil es wirklich ein Streifband um das Betriebssystem spezifische Funktionen ist. Der Hauptzweck von SDL ist, ein allgemeines Fachwerk zur Verfügung zu stellen, um auf diese Funktionen zuzugreifen. Für die weitere Funktionalität außer dieser Absicht sind viele Bibliotheken geschaffen worden, um oben auf SDL zu arbeiten.

Softwareentwickler verwenden es, um Computerspiele oder andere Multimediaanwendungen zu schreiben, die auf vielen Betriebssystemen einschließlich des Androiden, AmigaOS, AmigaOS 4, FreeBSD, BeOS/Haiku, EIN/AUSGABE-STEUERSYSTEM, Linux, Mac OS 9, Mac OS X, MorphOS, OpenVMS, PlayStation Tragbar, Silbe, Symbian, webOS, und Windows laufen können. Es führt Video, Ereignisse, Digitalaudio, CD-ROM, Ton, Fäden, das geteilte Gegenstand-Laden, den Netzwerkanschluss und die Zeitmesser.

Design

SDL selbst ist sehr einfach; es handelt bloß als ein dünnes, Quer-Plattform-Streifband, Unterstützung für 2. Pixel-Operationen, Ton, Dateizugang, das Ereignis-Berühren, Timing, Einfädeln, und mehr zur Verfügung stellend. Es wird häufig verwendet, um OpenGL durch die Aufstellung der grafischen Produktion und die Versorgung der Maus und des Tastatur-Eingangs zu ergänzen, die außer dem Spielraum von OpenGL sind.

Die Bibliothek wird in mehrere Subsysteme geteilt, nämlich das Video (behandelt sowohl Oberflächenfunktionen als auch OpenGL), Audio-, CD-ROM, Steuerknüppel und Zeitmesser-Subsysteme. Außer dieser grundlegenden, auf niedriger Stufe Unterstützung gibt es auch einige getrennte offizielle Bibliotheken, die noch einige Funktionen zur Verfügung stellen. Diese umfassen die "Standardbibliothek", und werden auf der offiziellen Website zur Verfügung gestellt und in die offizielle Dokumentation eingeschlossen:

  • SDL_image — unterstützen für vielfachen Image Formate
  • SDL_mixer — komplizierte Audiofunktionen, hauptsächlich für den Ton, der sich vermischt
  • SDL_net — Unterstützung vernetzend
  • SDL_ttf — Schriftart-Übergabe-Unterstützung von TrueType
  • SDL_rtf — einfaches Reiches Textformat, das macht

Anderer bestehen Sonderbibliotheken auch. Zum Beispiel: SDL_Collide auf Sourceforge von Amir Taaki geschaffen.

Die SDL Bibliothek hat Sprache bindings für viele Programmiersprachen, vom populären (C, C ++, Pascal, Perl, Pythonschlange (über Pygame), usw.) in die weniger bekannten Sprachen wie Ch (über ChSDL), Wohlbefinden und Biegsam. Das und es offene Quelle und lizenziert unter dem LGPL zu sein, machen SDL eine allgemeine Wahl für viele Multimediaanwendungen.

Geschichte

Sam Lantinga hat die Bibliothek geschaffen, zuerst es Anfang 1998 veröffentlichend, während er für die Loki Software gearbeitet hat. Er hat die Idee bekommen, während er eine Windows-Anwendung zu Macintosh getragen hat. Er hat dann SDL verwendet, um Schicksal zu BeOS zu tragen (sieh Schicksalquellhäfen). Mehrere andere freie Bibliotheken wurden entwickelt, um neben SDL, wie SMPEG und OpenAL zu arbeiten. Er hat auch Milchstraße Gameworks 2008 gegründet, gewerblich zu helfen, SDL zu unterstützen, obwohl die Firmenpläne zurzeit darauf sind, halten wegen zeitlicher Einschränkungen.

SDL 1.3 ist eine Hauptaktualisierung zum SDL 1.2 codebase. Es ersetzt mehrere Teile der 1.2 API mit der allgemeineren Unterstützung für den vielfachen Eingang und die Produktionsoptionen. Einige Eigenschaft-Hinzufügungen schließen vielfache Fensterunterstützung, vielfache Eingangsgerät-Unterstützung (viele Mäuse, viele Tastaturen, usw.), Hardware-beschleunigte 2. Grafik und bessere Unterstützung von Unicode ein. Sie können auf den Fahrplan schauen, um einen Sinn was Bedürfnisse zu bekommen, für die Bewegung zu SDL 1.3/2.0 getan zu werden. SDL 1.3, wenn beendet, wird schließlich SDL 2.0 werden. SDL 1.3 wird zlib-lizenziert, und deshalb für die statische Verbindung in kommerziellen Projekten der geschlossenen Quelle, verschieden von SDL 1.2 frei verfügbar.

Häfen

Wegen des Weges wird SDL entworfen, viel vom Quellcode wird in getrennte Module für jedes Betriebssystem gespalten, um Anrufe zum zu Grunde liegenden System zu machen. Wenn SDL kompiliert wird, werden die richtigen Module für das Zielsystem ausgewählt.

Auf Windows von Microsoft verwendet SDL einen GDI backend standardmäßig. DirectX backend ist auch verfügbar. Ältere Versionen von SDL haben DirectX 5 verwendet, aber SDL 1.2 (die aktuelle stabile Ausgabe) verlangt DirectX 7 standardmäßig. Sam Lantinga hat festgestellt, dass er plant, DirectX 8 in SDL zukünftigen Ausgaben zu verwenden.

Auf X Fenstersystemplattformen, einschließlich Linux und OpenVMS, verwendet SDL Xlib, um mit dem X11 System für die Grafik und Ereignisse zu kommunizieren.

Auf Mac OS X verwendet SDL Quarz.

Syntax und Subsysteme

Die Syntax von SDL wird funktionsgestützt: Alle in SDL getanen Operationen werden durch vorübergehende Rahmen zu Funktionen getan. Spezielle Strukturen werden auch verwendet, um die spezifische Information zu versorgen, die SDL behandeln muss. Es gibt einige verschiedene Subsysteme, unter denen SDL seine Funktionen kategorisiert:

  • Das Video, die Ereignisse und das Faden-Subsystem: Das stellt Funktionen für das Video, die Nebenläufigkeit und das Ereignis zur Verfügung, das behandelt
  • Das Audiosubsystem: Das stellt Funktionen für Audio-zur Verfügung
  • Das Zeitsubsystem
  • Das Steuerknüppel-Subsystem
  • Das CD-ROM-Subsystem

Siehe auch

Weiterführende Literatur

  • Alberto García Serrano: Programación de videojuegos en SDL, Ediversitas, internationale Standardbuchnummer 8495836084 (spanische)
  • Ernest Pazera: Focus On SDL, Muska & Lipman/Premier-Trade, internationale Standardbuchnummer 1592000304
  • Ron Penton: Datenstrukturen für Game Programmers, Muska & Lipman/Premier-Trade, internationale Standardbuchnummer 1931841942 (Spielprogrammierbeispiele mit SDL)
  • John R. Hall: Linux Spiele, Keine Stärke, internationale Standardbuchnummer 1886411492 programmierend (Hat das erste SDL-Buch, durch Loki Spiele, Online-Version archiviert: PDF, Latexquellen)

Außenverbindungen


Samba (Software) / Seattler Universität
Impressum & Datenschutz