#include <stdio.h>
#include <SDL.h>
#define SDL_SUBSYSTEMS SDL_INIT_VIDEO
#define WIN_FLAGS SDL_ANYFORMAT|SDL_RESIZABLE
#define WIN_WIDTH 640
#define WIN_HEIGHT 480
#define WIN_BPP 0
#define WIN_TITLE "Program"
SDL_Surface *g_screen;
bool Init()
{
   
   if(SDL_Init(SDL_SUBSYSTEMS) == -1)
   {
      fprintf(stderr, "Unable to initialize SDL: %s\n",
            SDL_GetError());
      return false;
   }
   
   g_screen = SDL_SetVideoMode(WIN_WIDTH, WIN_HEIGHT, WIN_BPP, WIN_FLAGS);
   if(g_screen == NULL)
   {
      fprintf(stderr, "Unable to set %dx%d video: %s\n",
            WIN_WIDTH, WIN_HEIGHT, SDL_GetError());
      return false;
   }
   
   SDL_WM_SetCaption(WIN_TITLE, NULL);
   return true;
}
void Destroy()
{
   SDL_Quit();
}
bool ProcessEvent()
{
   SDL_Event event;
   while(SDL_PollEvent(&event))
   {
      switch(event.type)
      {
         case SDL_KEYDOWN:
            switch(event.key.keysym.sym)
            {
               case SDLK_ESCAPE:
                  return false;
                  break;
               default:
                  break;
            }
            break;
         case SDL_QUIT:
            return false;
            break;
         default:
            break;
      }
   }
   return true;
}
int main(int argc, char *argv[])
{
   printf(WIN_TITLE);
   
   
   if(!Init())
   {
      Destroy();
      return 1;
   }
   
   bool done = false;
   while(!done)
   {
      done = !ProcessEvent();
   
   }
   Destroy();
   return 0;
}