Developed since 2007, and with roots going back to 2002, Orx is an engine for C, C++, or Objective-C developers to create top performance 2D games. There are two sides to this little engine. One side is the clean code of the API, developed entirely in C, but with an object-orientated design. The other side is something quite clever: the configuration system.
Orx and Qt note.
The problem with QT (and a lot of other widget libraries) is it wants control of your soul–er, the entire main program loop. It wants to set up the OpenGL context itself and have full control of everything.
I also looked into this when I was evaluating widget libraries and thought it looked like too much trouble for me (then again, I’m not so experienced with OpenGL).
There are a few widget libraries designed to render into an existing OpenGL context and get out of your way. Of these, I’ve successfully got both libRocket and CEGUI working very well in Orx. Check out my other thread on libRocket if you’re interested in using it, since some changes need to be made to the rendering code.