#include /*Consente l'uso di printf e scanf (e tante altre funzioni)*/ #include /*Consente l'uso di funzioni per allocazioni di memoria*/ #include /*Consente l'uso delle funzioni Simple DirectMedia Layer*/ #define DIM_H 800 #define DIM_V 600 int main(void){ // si inizializza il sistema video if( SDL_Init(SDL_INIT_VIDEO) <0 ) { // SDL_GetError() ritorna una descrizione dell'errore printf("Errore init SDL: %s\n", SDL_GetError()); return 1; }/*if*/ // all'uscita del programma esegui SDL_Quit per risistemare le cose atexit(SDL_Quit); //dichiariamo un puntatore a una struttura SDL_Surface SDL_Surface *screen; //indichiamo la superficie screen come direttamente collegata al video screen = SDL_SetVideoMode(DIM_H, DIM_V, 0,SDL_HWSURFACE|SDL_DOUBLEBUF); if ( screen == NULL ) { printf("Problemi con il settaggio dello schermo: %s\n", SDL_GetError()); return 1; } //variabile per il ciclo principale int fine=0; //memoria dello stato dello schermo (intero o a finestra) int full_s=0; //flag per SDL_SetVideoMode Uint32 flags=SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN; //dichiariamo una struttura SDL_Event SDL_Event event; //game loop, ovvero il loop che viene eseguito finche` non si esce while(!fine) { //SDL_WaitEvent attende il prossimo evento SDL_WaitEvent(&event); //premendo la x della finestra col mouse si esce if ( event.type == SDL_QUIT ) fine = 1; if ( event.type == SDL_KEYDOWN ){ //ma si esce anche premendo Esc if ( event.key.keysym.sym == SDLK_ESCAPE ) fine = 1; if ( event.key.keysym.sym == SDLK_SPACE ) { //premendo SPAZIO si passa in modalita` schermo intero if(!full_s) { screen = SDL_SetVideoMode(DIM_H, DIM_V, 0,flags); full_s++; flags=SDL_HWSURFACE|SDL_DOUBLEBUF; } //premendolo ancora si torna in modalita` finestra else { screen = SDL_SetVideoMode(DIM_H, DIM_V, 0,flags); full_s--; flags=SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN; }/*else*/ }/*if*/ }/*if*/ }/*while*/ return 0; }/*main*/