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. |