title: SDL program freezes
body: <p>I'm writing a simple program for testing mouse. It compiles fine, but doesn't work. When I launch it, the window freezes. What am I doing wrong?</p>
  
  <pre><code>#include &lt;SDL/SDL.h&gt;
  #undef main
  
  int main()
  {
      if (SDL_Init (SDL_INIT_EVERYTHING) != 0)
          return 1;
      SDL_Surface* Scr;
      if ((Scr = SDL_SetVideoMode (300, 200, 32, 0)) == 0)
          return 2;
  
      SDL_Rect Mouse1 = {50, 50, 50, 100};
      SDL_Rect Mouse3 = {150, 50, 50, 100};
      SDL_Rect Mouse2 = {250, 50, 50, 100};
      SDL_Surface Colors;
      SDL_Rect Click = {0, 0, 50, 100};
      SDL_Rect NoClick = {50, 0, 50, 100};
  
      SDL_FillRect (Scr, 0, SDL_MapRGB (Scr-&gt;format, 255, 255, 255));
      SDL_FillRect (&amp;Colors, &amp;Click, SDL_MapRGB (Colors.format, 255, 0, 0));
      SDL_FillRect (&amp;Colors, &amp;NoClick, SDL_MapRGB (Colors.format, 0, 0, 255));
  
      while (true)
      {
          if (SDL_GetMouseState (0, 0) &amp; SDL_BUTTON(1))
              SDL_BlitSurface (&amp;Colors, &amp;Click, Scr, &amp;Mouse1);
          else
              SDL_BlitSurface (&amp;Colors, &amp;NoClick, Scr, &amp;Mouse1);
  
          if (SDL_GetMouseState (0, 0) &amp; SDL_BUTTON(2))
              SDL_BlitSurface (&amp;Colors, &amp;Click, Scr, &amp;Mouse2);
          else
              SDL_BlitSurface (&amp;Colors, &amp;NoClick, Scr, &amp;Mouse2);
  
          if (SDL_GetMouseState (0, 0) &amp; SDL_BUTTON(3))
              SDL_BlitSurface (&amp;Colors, &amp;Click, Scr, &amp;Mouse3);
          else
              SDL_BlitSurface (&amp;Colors, &amp;NoClick, Scr, &amp;Mouse3);
  
          if (SDL_GetKeyState (0) [SDLK_ESCAPE])
              return 0;
  
          SDL_Delay (17);
      }
  }
  </code></pre>