Related toolkits and APIs

Revision as of 03:46, 14 May 2011 by Zyx 2000 (Talk | contribs) (Cross-platform Toolkits: Changed links for SDL and QT)

Jump to: navigation, search

Toolkits top on OpenGL

Many programming interfaces are layered on OpenGL with rich and varied functionality. Not all can interoperate.

Extension libraries

A extension libraries simplifies the work with OpenGL extensions. They are also used to get the function pointers for standard OpenGL functions.

A extension library for Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
A extension library for Windows, Linux and FreeBSD.
An OpenGL3/4 Core context loading library for Windows, Linux and FreeBSD.

Scene graphs

A scene graph works on the top of OpenGL.

Open Scene Graph 
This scene graph works on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris and FreeBSD.
It's a scene graph which works on IRIX, Windows and Linux.
This scene graph works on all Windows platforms, OSX, GNU/Linux, and IRIX.

Game engines/toolkits

A C++ 3D game engine with Python bindings.
Game engine based on Open Scene Graph and ODE.
A cross platform C++ toolkit library with a BSD style license. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although not limited for that usage only.


A crossplatform framework for the development and deployment of parallel OpenGL applications for large scale graphics clusters and multi-GPU workstations.

Toolkits to bridge OpenGL and the Window System

OpenGL knows nothing about the surrounding window system. You need widget toolkit to bridge OpenGL and the window system. The widget toolkit abstract the interface for connecting the windows system and OpenGL like WGL, GLX and AGL away. There are many toolkits for that task. Most modern widget libraries provide this support.

Cross-platform Toolkits

  • GLUT : A crossplatform windowing and keyboard/mouse handler. Very old, consider using other toolkits instead.
  • 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.
  • GLFW : A crossplatform windowing and keyboard/mouse/joystick handler. Contrary to GLUT, this is more aimed for creating games. Supports Windows, Mac OS X and Unix-like systems such as Linux and FreeBSD.
  • FLTK : A small widget library.
  • Qt : A toolkit which abstracts the Linux, MacOS X and Windows away.
  • SDL : A crossplatform multimedia library written in C. SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported.
  • SFML : A cross-platform multimedia C++ API that provides you low and high level access to graphics, input, audio, etc. Free, still updated and written in C++.

Image and Texture Libraries

  • GLAUX : this is a very old library that should not be used anymore. Most people who encounter GLAUX are people who see the NeHe tutorials which haven't been updated in years. NeHe uses auxDIBImageLoad() in order to read BMP files. GLAUX is no longer available.
  • DevIL: DevIL stands for Developers Image Library. It supports many image formats for reading and writing, it supports several compilers and OS (Win, Linux, Mac OSX). The library has a OpenGL-like syntax. It has not been updated recently.
  • FreeImage: FreeImage is an cross-platform image-loading library, with very wide support for image formats (including some HDR formats like OpenEXR).
  • SOIL: SOIL ( Simple OpenGL Image Loader ) is a public-domain cross-platform image loader that's extremely small.
  • GLI: GLI( OpenGL Image ) is a small cross-platform C++ image library able to load DDS textures (DDS9 and DDS10), compressed or uncompressed. It is licensed under the MIT license.

Math Libraries

  • GLM: GLM ( OpenGL Mathematics ) is a cross-platform C++ mathematics library designed to match the GLSL math functions. It also provides vectors and matrices classes and functions to replace the deprecated OpenGL functions and many more features from half-precision floating point or quaternions. It is licensed under the MIT license.

Sound or Audio Libraries

OpenAL stands for Open Audio Library. It is maintained by people at Creative and nVidia and users. Multi OS support (Win, Linux, Mac OSX). The library has a OpenGL like syntax so it is easy to use. Closed source and open source portions. Access to special SoundBlaster features through extensions.