http://www.pronix.de -> Bücher -> Bücher aus meiner Feder -> Linux-Unix-Programmierung -> Extra Kapitel: SDL -> SDL initialisieren und Videomodus einstellen -> Programmbeispiel - SDL initialisieren und Videomodus einstellen

Programmbeispiel - SDL initialisieren und Videomodus einstellen

Das folgende Listing verwendet alle bisher besprochenen Funktionen. Der Video-Untermodus von SDL wird erst initialisiert und anschließend wird versucht, ein Fenster mit dem Modus 640 x 480 und 16 Bit-Farbtiefe im Hauptspeicher zu erstellen. Natürlich können Sie hierbei an den Angaben der Parameter experimentieren.

/* sdl1.c */
#include <SDL/SDL.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main (void) {
   SDL_Surface *screen;
   /* SDLs Video-System initialisieren und auf */
   /* Fehler überprüfen                        */
   if (SDL_Init ( SDL_INIT_VIDEO ) != 0) {
      printf ("Konnte SDL nicht initialisieren: %s\n",
         SDL_GetError ());
      return EXIT_FAILURE;
   }
   /* Wenn die Anwendung beendet wird,          */
   /* wird die Funktion SDL_Quit() ausgeführt   */
   atexit (SDL_Quit);
   /* Videomodus mit 640x480 Pixeln, Hi-Color (16Bit)    */
   /* einrichten. Oberfläche (Surface) Standardmäßig in  */
   /* den Hauptspeicher (SDL_SWSURFACE) legen            */
   screen = SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE);
   if (screen == NULL) {
      printf ("Videomodus konnte nicht eingerichtet werden: "
              " %s\n", SDL_GetError ());
      return EXIT_FAILURE;
   }
   /* 4000 ms warten ... */
   SDL_Delay (4000);
   printf ("Erfolgreich beendet!\n");
   return EXIT_SUCCESS;
}


Das Programm bei der Ausführung:

TTY

you@host > gcc `sdl-config --libs` `sdl-config --cflags` -o sdl1 sdl1.c

you@host > ./sdl1

...



Nach dem Starten des Listings erscheint bei erfolgreicher Ausführung für 4000 Millisekunden ein SDL-Fenster (genauer das Surface), womit/worauf Sie jetzt weitere Aktionen starten könnten - und im Verlauf der Kapitels auch werden.