Portal:Development Tools/Window Creation

From OpenGL Wiki
Revision as of 05:45, 12 March 2013 by Alfonse (talk | contribs) (Window creation info.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The creation of a window to render stuff in is not covered in the OpenGL specification. This is handled by platform-specific APIs. These APIs have been abstracted in many toolkits.

These toolkits are designed specifically around creating and managing OpenGL windows. They also manage input, but little beyond that.

freeGLUT
A crossplatform windowing and keyboard/mouse handler. Its API is a superset of the GLUT API, and it is more stable and up to date than GLUT. It supports creating a core OpenGL context.
GLFW
A crossplatform windowing and keyboard/mouse/joystick handler. Is more aimed for creating games. Supports Windows, Mac OS X and *nix systems. Supports creating a core OpenGL context.
GLUT
Very old, do not use.

Several "multimedia libraries" can create OpenGL windows, in addition to input, sound and other tasks useful for game-like applications.

Allegro version 5
A cross-platform multimedia library with a C API focused on game development. Supports core OpenGL context creation.
SDL
A cross-platform multimedia library with a C API. Version 1.2 does not support core OpenGL context creation, but version 2.0 will.
SFML
A cross-platform multimedia library with a C++ API. Supports creating a core OpenGL context.

Many widget toolkits have the ability to create OpenGL windows, but their primary focus is on being widget toolkits.

FLTK
A small C-based widget library.
Qt
A C++ toolkit which abstracts the Linux, MacOS X and Windows away. It provides a number of OpenGL helper objects, which even abstract away the difference between desktop GL and OpenGL ES.
wxWidgets
A C++ cross-platform widget toolkit.