can you describe me (short), what the following Toolkits for OpenGL do:

Thank you.


They differ somewhat in features etc, but the basic functionality they try to provide is what is missing in OpenGL in terms of window handling and user interaction etc.

OpenGL by itself is purely a graphics API, it does not provide any means to control windows, detct keyboard input, read a timer etc. In other words, OpenGL by itself is not even able to open an OpenGL window (!)

All these “other things” have to be handled through the standard operating system interface (e.g. the Win32, X11 or MacOS APIs), which can be very complicated (not to mention unportable).

That is where the toolkits come into the picture: they “wrap up” the operating system specific stuff in a neat API layer interface.

GLUT was the first of these toolkits (at least the ones mentioned here), and thus is the most widely adopted toolkit. On the other hand it is getting old, and is not updated much anymore. It has its roots in the X Window world, but is available for Windows, MacOS etc.

GLFW provides some of the functionality of GLUT, and some added functionality (high resolution timers, multi threading, better fullscreen support etc). It is fairly new, and in constant development. It is cross platform portable (currently works under Windows and Unix/X11), meaning that a program that is based on GLFW can easily be compiled for both Windows and Unix/X11 (e.g. Linux). GLFW is mostly designed for game development, but can be used for many other types of applications.

CPW is a comprehensive API designed mostly for game development. It has some nice features like font support, image loading etc. Allthough CPW is designed to be portable, only Windows is supported at the moment.

As I understand it, GLOW is a object oriented C++ wrapper for GLUT, with some added functionality.

Since I am the author of GLFW, I will stay at those descriptions (Jim? A few words about CPW?)

Oh, thank you. That are a lot of facts.