#include /*Alle Sdl Aplikationen brauchen das*/ #include /* Standart C++ Header-Datei fuer Ein- und Ausgabe */ using namespace std; int main(int argc, char **argv) { SDL_Surface *screen; cout << "SDL wird initialisiert" << endl; /* SDL wird mit den Subsystemen Video und Audio initialisiert und bei einem Fehler wird eine * Fehlermeldung ausgegeben. Bei einem Fehler waehrend der Initialisierung wird der Wert -1 * zurueckgegeben, bei Erfolg der Wert 0 */ if (SDL_Init (SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0) { cerr << "Kann SDL nicht initialisieren!!!!!" << SDL_GetError() << endl; SDL_Quit(); return -1; } cout << "SDL ist initialisiert worden" << endl; /*Initialisiere SDL_INIT_TIMER nachtraeglich*/ SDL_InitSubSystem(SDL_INIT_TIMER); screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE); if (screen == NULL) { cerr << "Konnte Video-Mode 640x480 nicht setzten" << SDL_GetError() << endl; SDL_Quit(); return -1; } std::cout << "Video-Mode wurde gesetzt" << std::endl; const SDL_VideoInfo *VideoInfo; VideoInfo = SDL_GetVideoInfo(); Uint32 VideoMem; /*Variable fuer die Angabe der Grosse des Videospeichers*/ Uint32 hw_available; /*Variable um zu pruefen ob die garfikkarte das SDL_HWSURFACE unterstuetzt*/ Uint8 bpp; /*fuer die Angabe des besten Pixelformates*/ VideoMem = VideoInfo->video_mem; cout << "Die Grafikkarte besitzt einen Videospeicher von" << VideoMem << "KiloBytes" << endl; hw_available = VideoInfo->hw_available; if (!hw_available) { cerr << "SDL_HWSURFACE wird nicht unterstuetzt" << endl; } bpp = VideoInfo->vfmt->BitsPerPixel; cout << "Die beste Farbtiefe ist" << bpp << "Bit" << endl; SDL_Rect **modes; /*erstellen der Variablen Modes in der wir die Angaben von SDL_ListModes speichern wollen*/ int i; modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); if(modes == (SDL_Rect **)0) { cerr << "Es sind keine Aufloesung verfuegbar!" << endl; SDL_Quit(); return -1; } if(modes == (SDL_Rect **)-1) { cout << "Alle Aufloesungen sind verfuegbar!" << endl; } else { for(i=0;modes[i]; i++) cout << "Die Aufloesung " << modes[i]->w << "x" << modes[i]->h << " ist verfuegbar" << endl; } bpp=SDL_VideoModeOK(640, 480, 16, SDL_HWSURFACE); if(!bpp) { cerr << "Diese Aufloesung wird nicht unterstuetzt" << endl; SDL_Quit(); return -1; } std::cout << "Die Gewaehlte Aufloesung funktioniert mit der Farbtiefe " << bpp << endl; const char *fenster_titel = "Mein Fenstertitel"; const char *icon_titel = "Mein Icontitel"; SDL_WM_SetCaption(fenster_titel, icon_titel); sleep(5); char *FensterTitel; char *IconTitel; SDL_WM_GetCaption(&FensterTitel, &IconTitel); if(FensterTitel!=NULL) cout << "Der Fenstertitel ist: " << FensterTitel << endl; if(IconTitel!=NULL) cout << "Der IconTitel ist: " << IconTitel << endl; /* Hiermit beende ich das Subsystem Timer*/ std::cout << "Subsystem Timer beenden" << std::endl; SDL_QuitSubSystem(SDL_INIT_TIMER); /*hiermit beende ich alle noch laufende Subsysteme von SDL*/ std::cout << "SDL beenden" << std::endl; SDL_Quit(); std::cout << "SDL beendet!" << std::endl; }