[Zurück] Inhaltsverzeichnis [Weiter]

Was kann SDL?

Video
  • einen Video-Modus beliebiger Tiefe (8 Bit oder mehr) einstellen, mit optionaler Konvertierung, wenn der Modus nicht von der Hardware unterstützt wird.
  • direkt in einen linearen Grafikspeicher (Framebuffer) schreiben.
  • Oberflächen - "surface" genannt - mit Color-Key oder Alpha Blending (Transparenz) erstellen
  • Kopieroperationen (Blits) werden automatisch ins Zielformat konvertiert. Dabei werden optimierte Routinen und Hardware-Unterstützung genutzt. Auf x86-Rechnern werden MMX-Routinen verwendet.
  • Kopier- und Fülloperationen werden nach Möglichkeit durch die Hardware beschleunigt.
Tip:
Den Fenster-Titel und das Icon (falls es die auf dem jeweiligen System gibt) kann man mit den Funktionen SDL_WM_SetCaption() respektive SDL_WM_SetIcon() einstellen.
Ereignisse
  • Ereignisse werden zur Verfügung gestellt für:
    • Änderung der Sichtbarkeit des Programms
    • Tastatur-Eingaben
    • Maus-Eingaben
    • ein vom Benutzer gewünschtes Ende des Programms
  • Jedes Ereignis kann mit SDL_EventState() einzeln ermöglicht oder verhindert werden.
  • Ereignisse werden durch eine vom Benutzer spezifizierte Filterfunktion geleitet, bevor sie in die interne Ereignis-Queue eingereiht werden.
  • Die Ereignis-Queue ist Thread-sicher.
Tip:
Mit SDL_PeepEvents() kann man die Ereignis-Queue nach einem bestimmten Ereignis durchsuchen.
Audio
  • Audio kann in den Formaten 8 Bit oder 16 Bit, mono oder stereo abgespielt werden - mit optionaler Wandlung, falls die Hardware das Format nicht unterstützt.
  • Audio wird aus einem separaten Thread abgespielt. Der Puffer wird über ein Callback gefüllt.
  • Es können eigene Audio-Mixer verwendet werden. Das Beispiel-Archiv enthält eine vollständige Audiowiedergabe-Bibliothek.
Tip:
SDL_LockAudio() und SDL_UnlockAudio() synchronisieren den Daten-Zugriff zwischen dem Audio-Callback und dem Rest des Programms.
Audio-CD-ROMs
  • vollständige Audio-CD-API
Tip:
Wenn an eine CD-ROM-API-Funktion NULL als CD-ROM-Handle übergeben wird, wird das zuletzt geöffnete CD-ROM-Laufwerk angesprochen.
Threads
  • einfache Thread-API
  • einfache Semaphoren, Mutex-Objekte und Condition-Variablen zur Synchronisation
Tip:
In Threads sollten möglichst keine C-Bibliotheksfunktionen wie Ein-/Ausgabe oder Speicherverwaltung verwendet werden. Es könnte zu Konflikten mit anderen Threads kommen.
Timer
  • die abgelaufene Zeit in Millisekunden abfragen
  • eine vorgegebene Zahl von Millisekunden warten
  • einen periodischen Zeitgeber mit 10 ms Auflösung starten
Tip:
Die Windows-Funktion GetTickCount() kann leicht durch SDL_GetTicks() ersetzt werden.
Konvertierung der Bytereihenfolge
  • Bytereihenfolge ("big endian"/"little endian") des Systems feststellen
  • Funktionen für die schnelle Umwandlung von Daten
  • Lesen und Schreiben von Daten mit einer vorgegebenen Bytereihenfolge
Tip:
Beim Einlesen von 16-Bit-Grafikdateien muß eventuell die Bytefolge gewandelt werden.

[Zurück] Inhaltsverzeichnis [Weiter]