====== 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]]