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.
PC/Workstation OS Level Support
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.
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 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
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.
- SGI open sourced GLX (the glue connecting OpenGL and the X Window System) and the OpenGL sample implemenation.
- The OpenGL Application Binary Interface for Linux defines using OpenGL under X11 on Linux
- Drivers for OpenGL 3D hardware acceleration are available directly from NVIDIA, 3dfx, and Matrox among others.
- XiGraphics provides commercial OpenGL drivers.
- XFree86 4 added DRI GLX drivers for OpenGL 3D support.
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:
- Lightweight Java Game Library (LWJGL) (a complete game library which includes a Java binding for OpenGL)
- Java 3D (SUN's retained mode library layered on OpenGL)
- YAJOGLB (Yet Another Java OpenGL Binding)
- Jogl - OpenGL *binding for Java*
- Tree: Java interface for Mesa 3D graphics
- Unofficial port of OpenGL to Java
- JavaOpenGL 1.0a3
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
- Perl OpenGL (POGL) Module is a binary Perl binding of OpenGL that supports GPGPU processing.
- Perl OpenGL Bindings 0.64 - Perl module to display 3D data using OpenGL, GLU, GLUT, and GLXf GLU is supported and GLUT should be completely supported up to API version 3
- OpenGL Perl, C and Python Benchmarks
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:
- OpenGL for PlayStation 3
- OpenGL for INTEGRITY
- OpenGL for VXWorks
- OpenGL for LynxOS
- OpenGL for Acorn RISC OS
- OpenGL for Amiga (StormMesa) and Amiga MiniGL
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.