title: OpenGL Windowing Library for 2009
body: <p>Trying to decide on a library for creating a window and capturing user input for my OpenGL app, but there are just way too many choices:</p>
  
  <ul>
  <li><a href="http://www.opengl.org/resources/libraries/glut/" rel="nofollow noreferrer">GLUT</a> (<a href="http://www.xmission.com/~nate/glut.html" rel="nofollow noreferrer">win32</a>)</li>
  <li><a href="http://freeglut.sourceforge.net/" rel="nofollow noreferrer">FreeGLUT</a></li>
  <li><a href="http://openglut.sourceforge.net/" rel="nofollow noreferrer">OpenGLUT</a></li>
  <li><a href="http://www.sfml-dev.org/" rel="nofollow noreferrer">SFML</a></li>
  <li><a href="http://glfw.sourceforge.net/" rel="nofollow noreferrer">GLFW</a></li>
  <li><a href="http://www.libsdl.org/" rel="nofollow noreferrer">SDL</a></li>
  <li><a href="http://www.fltk.org/" rel="nofollow noreferrer">FLTK</a></li>
  <li><a href="http://oglwfw.sourceforge.net/" rel="nofollow noreferrer">OGLWFW</a></li>
  <li><a href="http://www.clutter-project.org/" rel="nofollow noreferrer">Clutter</a></li>
  <li><a href="http://qt.nokia.com/" rel="nofollow noreferrer">Qt</a></li>
  <li>Others?</li>
  </ul>
  
  <p>GLUT is simply outdated. I liked GLFW but it seems you can't set the window position before displaying it (I wanted it centered, is that so much to ask?) so you see it appear and then shift over, which bothers me. Plus development seems to have stopped on it too. SFML has some nice features, but it uses event polling rather than callbacks which I prefer for decoupling. I don't think I need all the GUI features of FLTK. SDL is slow (doesn't seem to take advantage of the GPU). And the other 3 I don't know much about (FreeGLUT, OpenGLUT, OGLWFW). So which is the lesser of the evils? Are there others I haven't heard about?</p>
  
  <p>I'm just trying to make a simple 2D game. I'm familiar enough with OpenGL that I don't really need drawing routines, but I probably wouldn't complain about other functions that might be useful if they are implemented properly.</p>