Simple and fast Multimedia Library
Ab hier geht es richtig los mit dem
SFML Framework! Aber was ist SFML eigentlich?
Simple and Fast Multimedia Library (SFML; deutsch Einfache und schnelle Multimedia-Bibliothek) ist ein plattformunabhängiges, objektorientiertes Open-Source-Multimedia-Framework, das unter der zlib/libpng-Lizenz steht. Es ist in C++ geschrieben und greift intern auf betriebssystemspezifische Funktionen sowie externe Bibliotheken zurück. Neben C++ bietet es Anbindungen für die Programmiersprachen C, .NET (C#, VB.NET, ...), Python, Ruby, OCaml, D und Java an. SFML wurde mit der Intention entwickelt, möglichst benutzerfreundliche und effiziente Multimedia-Programmierung auf hohem Abstraktionslevel zu erlauben, daher auch der Name der Bibliothek.
SFML ist in mehrere Teilpakete gegliedert, die unterschiedliche Aufgabenbereiche erfüllen. Zu den wichtigen Merkmalen gehören:
System (Kern der API)
- Portable Zeitmessung
- Threads und Mutexes
- Funktionen zur Umwandlung zwischen Unicode und lokalen Formaten
Window (Plattformunabhängige Erstellung und Verwaltung von Fenstern)
- OpenGL-Rendering-Kontext, um Zeichnen im Fenster zu ermöglichen
- Event-Handling und Echtzeit-Eingabe von Maus, Tastatur und Joystick
Graphics (2D-Grafikschnittstelle zu OpenGL)
- Laden und Speichern von gängigen Bilddateiformaten (BMP, JPG, PNG, TGA, DDS, PSD)
- Darstellung von Sprites auf dem Bildschirm
- Translation, Rotation, Spiegelung, Skalierung und Einfärbung von Zeichenobjekten
- Darstellung von Schriftarten (TrueType, OpenType, Bitmap-Schriften (FNT) und weiteren Formaten)
- 2D-Grafikprimitive wie Kreise, Linien, Rechtecke
- Kameraklasse, die eine dynamische Ansicht auf einen 2D-Bereich ermöglicht
Audio (Unterstützung von Soundeffekten und Musik)
- Laden von gängigen Formaten wie OGG, WAV, AIFF und einigen mehr
- Einfache Schnittstelle für Audio-Aufnahmen
- Streaming für große Dateien
- 3D-Sound
Network (Netzwerkanbindung)
- Kommunikation über TCP- und UDP-Sockets
- Einfacher Datentransfer durch streambasierte erweiterbare Pakete
- Klassen für HTTP- und FTP-Internetprotokolle
SFML eignet sich hauptsächlich für Spiele und Multimediaanwendungen. Da das Framework für die Grafik auf OpenGL zurückgreift, können auch 3D-Anwendungen auf SFML basieren. Beispielsweise kann man sich auf diese Weise die Implementierung der Fenster, Ereignisse und Sounds von SFML abnehmen lassen, während man die 3D-Grafik direkt in OpenGL bearbeitet. Je nach Anforderung können die gewünschten Teilpakete einzeln eingebunden werden, so reicht zum Beispiel das System-Package für parallele Programmierung.