Part of the Khronos Group

OpenGL Platform & OS Implementations

OpenGL is supported on every major operating system, it works with every major windowing system, and it is callable from most programming languages. It offers complete independence from network protocols and topologies. All OpenGL applications produce consistent visual display results on any OpenGL API-compliant hardware, regardless of operating system or windowing system.

OS Level Support
Language Bindings
Embedded Systems & Game Consoles

PC/Workstation OS Level Support

Win32 Microsoft Windows

OpenGL v1.1 ships as part of Win32. The OpenGL v1.1 libraries are also available as the self-extracting archive file from the Microsoft Site via HTTP or FTP. Hardware vendors can write OpenGL 1.5 drivers using the existing OpenGL 1.1 DDK today.

MacOS Apple Mac OS

Apple ships OpenGL as a standard feature of the Mac OS (OS9 and Mac OS X). OpenGL accelerator hardware is also built into every new Mac. The OpenGL extension and developer SDK are available on Apple's OpenGL developer pages

X-Win X Window System

OpenGL is supported on all UNIX workstations. For info about using OpenGL with X Window System see the following pdf documents: OpenGL & X: An Introduction, Using OpenGL with Xlib, Integrating OpenGL with Motif

Linux Linux

OpenGL and GLX and the X server integration of GLX, are Linux system components, and should be part of the Debian, RedHat, SuSE, or Caldera distribution.

Language Bindings

Java OpenGL Bindings

In July of 2003, Sun and SGI announced that they will work to develop Java bindings for OpenGL. This effort will enable tens of thousands of developers, who write graphics applications, to gain the many benefits of the Java technology. Java for OpenGL is also available in the following projects:

Fortran 90 OpenGL Bindings

f90gl is a public domain implementation of the official Fortran 90 bindings for OpenGL. With the new bindings, a Fortran programmer can write standard-conforming graphics applications that will be portable over most computing platforms. The current version is Version 1.2.3 This version implements the interface for OpenGL 1.2, GLU 1.2, GLUT 3.7, and several extensions. It supports several Unix workstations and Windows 95/98/NT. It is also the Fortran interface for Mesa.

Perl OpenGL Bindings

Pike OpenGL Bindings

Pike has a native interface to OpenGL. In addition to Pikes GL support Pike also supports GLU and GLUT.

Python OpenGL Bindings

  • PyOpenGL is a cross-platform open source Python binding to the standard OpenGL API providing 2-D and 3-D graphic drawing. PyOpenGL supports the GL, GLU, and GLUT libraries. The library can be used with the Tkinter, wxPython, FxPy, and Win32GUI windowing libraries (or almost any windowing library which can provide an OpenGL context).
  • PyGlut makes GLUT available from the Python interpreter.

Ada OpenGL Bindings

Ada OpenGL 1.1 bindings supports GL & GLU and GLUT.

Embedded Devices / Cell Phones / Game Consoles / Avionics

OpenGL ES (OpenGL for Embedded Systems) is based on well-defined subset profiles of OpenGL and enables the lightest weight interface between software and hardware acceleration for advanced 2D/3D graphics capabilities on mobile & handheld devices, appliances, game stations, and embedded displays. The 1.0 specification includes the Common/Common-Lite renderer and EGL bindings to the native platform window system. OpenGL ES is also integrated with Java for mobile devices. Implementations of OpenGL for embedded devices is also available in the following software:

Mesa 3D

Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL. To the extent that Mesa utilizes the OpenGL command syntax or state machine, it is being used with authorization from SGI.

While Mesa is not a licensed OpenGL implementation, it is currently being tested with the OpenGL conformance tests. Despite these technical/legal terms, you may find Mesa to be a valid alternative to OpenGL. Most applications written for OpenGL can use Mesa instead without changing the source code.

Column Header
Column Footer