====== SDL_SetVideoMode ======
Um Grafiken anzuzeigen muss ein Fenster erzeugt bzw. das Programm in den Vollbildmodus versetzt werden. Dies geschieht mit der Funktion SDL_SetVideoMode. Vor dem Aufruf dieser Funktion muss das SDL-Videosubsystem initialisiert werden (z.B. mit [[SDL_Init]]).
===== Signatur =====
#include
SDL_Surface *SDL_SetVideoMode (int breite, int höhe, int bpp, Uint32 flags)
==== Parameter ====
=== breite ===
Breite des Fensters bzw. horizontale Auflösung im Vollbildmodus; gängige Werte: 800, 1024, 1280
=== höhe ===
Höhe des Fensters bzw. vertikale Auflösung im Vollbildmodus; gängige Werte: 600, 768, 1024
=== bpp ===
bits per pixel, die Anzahl der zur Verfügung stehenden Farben; gängige Werte: 16, 24, 32
=== flags ===
Geben an wie das Fenster erstellt werden soll.
Mögliche Parameter für "flags":
^ Name ^ Auswirkung ^
| SDL_SWSURFACE | Surface wird im Hauptspeicher erstellt |
| SDL_HWSURFACE | Surface wird im Videospeicher erstellt |
| SDL_ASYNCBLIT | asynchrones Blitten wird ermöglicht |
| SDL_ANYFORMAT | aktuelle Farbtiefe des Bildschirms wird verwendet |
| SDL_HWPALETTE | 256-Farben Palette verwenden |
| SDL_DOUBLEBUF | ein zweiter Puffer wird zur Performanceerhöhung verwendet |
| SDL_FULLSCREEN | Vollbild-Modus wird gestartet |
| SDL_OPENGL | SDL wird in Kombination mit OpenGL verwendet |
| SDL_OPENBLIT | SDL und OpenGL werden verwendet, SDL übernimmt das rendern |
| SDL_RESIZABLE | Größe des Fensters kann zur Laufzeit verändert werden |
| SDL_NOFRAME | im Fenstermodus bekommt das Fenster keine Standard-Dekoration |
FIXME Genauere Erklärung der Parameter
Die Parameter können kombiniert werden, indem man sie mit einem binären Oder (|) verknüpft.
==== Rückgabewert ====
* **Erfolg**: Ein Pointer auf das Haupt-Surface \\
* **Fehler**: NULL
===== Beispiel =====
#include
#include
int main( int argc, char **argv )
{
// Pointer auf das Haupt-Surface
SDL_Surface *screen;
// Videosubsystem initialisieren
if( SDL_Init( SDL_INIT_VIDEO ) )
{
// Irgendwas ist schiefgegangen. SDL_GetError weiß mehr
std::cerr << "Konnte SDL nicht initialisieren: " << SDL_GetError() << std::endl;
return 1;
}
// SDL_Quit registrieren
atexit (&SDL_Quit);
// anfordern eines 800*600 Fensters mit einer Farbtiefe von 16-Bit und zweitem Puffer
screen = SDL_SetVideoMode (800, 600, 16, SDL_DOUBLEBUF);
// prüfe auf Fehler
if (screen == NULL)
{
std::cerr << "Konnte Fenster nicht erstellen: " << SDL_GetError() << std::endl;
return 1;
}
// dem Benutzer 5 Sekunden Zeit geben um das Fenster zu betrachten
SDL_Delay (5000);
return 0;
}
===== Siehe auch =====
[[SDL_GetVideoSurface]]