====== SDL_LoadBMP ======
SDL_LoadBMP lädt das angegebene BMP Bild in eine [[SDL_Surface]] Struktur. Im Fehlerfall bekommt man NULL zurück, ansonsten kann man die Oberfläche zum Beispiel mit [[SDL_BlitSurface]] in auf den Bildschirm kopieren. Nach der Verwendung muss die Oberfläche mit [[SDL_FreeSurface]] wieder freigegeben werden, da beim Laden dynamischer Speicher angefordert wird.
===== Signatur =====
#include
SDL_Surface *surface SDL_LoadBMP( const char* file );
==== Parameter ====
=== file ===
Der Dateipfad der zu ladenden BMP Datei.
==== Rückgabewert ====
* **NULL**: Im Fehlerfall
* **sonst**: Zeiger auf eine gefüllte [[SDL_Surface]] Struktur
===== Beispiel =====
Als Bild kann folgende Grafik verwendet werden: \\
{{:sdl:lib:proggenlogo.zip|}} \\
Sie muss im gleichen Verzeichnis wie das Programm liegen. \\
#include
#include
#include
int main( int argc, char **argv )
{
if( SDL_Init( SDL_INIT_VIDEO ) ) // Video-Subsystem initialisieren und auf Fehler prüfen
{
std::cerr << "Konnte SDL nicht initialisieren: " << SDL_GetError() << std::endl;
return 1;
}
atexit (&SDL_Quit); // SDL am Ende des Programms runterfahren
// ein 312*61 Fenster erstellen
SDL_Surface *screen = SDL_SetVideoMode (312, 61, 16, SDL_DOUBLEBUF);
if( !screen ) // prüfen ob das Fenster korrekt erstellt wurde
{
std::cerr << "Konnte Fenster nicht erstellen: " << SDL_GetError () << std::endl;
return 1;
}
SDL_Surface *image = SDL_LoadBMP ("proggenlogo.bmp"); // Bild laden
if( !image )
{
std::cerr << "Bild konnte nicht geöffnet werden: " << SDL_GetError () << std::endl;
return 1;
}
SDL_BlitSurface( image, NULL, screen, NULL); // das Bild auf das Fenster blitten
SDL_FreeSurface( image ); // Speicher des Bildes freigeben
SDL_Flip( screen ); // Puffer tauschen
SDL_Delay (5000); // dem Benutzer Zeit geben das Bild anzusehen
return 0;
}
Nun sollte ein Fenster mit Bild angezeigt werden.