lunes, 6 de agosto de 2007

Ventana en SDL

En esta ocasion os traigo un pequeño codigo que hara una ventana usando SDL... (lo más escencail y basico) Primero mostrare el codigo de la ventana y despues lo analizaremos...


#include < SDL/SDL.h >
#include < stdlib.h >
int main(int argc, char *argv[]){
SDL_Surface *Pantalla;
SDL_Event Cierra;
if( SDL_Init( SDL_INIT_VIDEO ) <> printf("ERROR AL INICIAR SDL %s\n",SDLGetError() );
exit 0;
}
atexit( SDL_Quit );
while(1){
while( SDL_PollEvent( &Cierra ) ){
if( Cierra.type == SDL_Quit ){
SDL_FreeSurface( Pantalla );
exit 0;
}
}
}




Bueno ahora resta analizar linea por linea lo que nos hace este programa

int main(int argc, char *argv[])
Esta función ya la conocemos todos....
SDL_Surface *Pantalla
Esta parte del codigo crea una variable apuntador del tipo SDL_Surface que contendra como lo dice su nombre una superficie (Surface)
SDL_Event Cierra
Inicializamos una variable de tipo evento (Event) para los eventos de la ventana
SDL_Init( SDL_INIT_VIDEO )
Esta función interna de SDL es la que se encarga de iniciar los subsistemas... Más adelante veremos que subsistemas existen y como se inician y/o se cierra. Regresa -1 si no fue posible iniciar el sistema
SDL_Quit
Indica que cierra SDL y como no nos regresa ningun valor es ideal para usarla junto con atexit()...
SDL_PollEvent( &Cierra )
Nos indica si existe otro evento a procesar en la cola de eventos que esta definido en Cierra
if( Cierra.type == SDL_Quit )
Si el siguiente evento a procesar es el del cierra de la ventana saldra del programa..
SDL_FreeSurface( Pantalla )
Es de buena costumbre liberar memoria al ya no usarla... sobre todo en juegos pues es muy escencial la memoria... Esta funcion es la encargada de liberar una variable (superficie) no retorna nada...

No hay comentarios.: