GLX (OpenGL Extension to the X Window System) ist eine Programmierschnittstelle (API), welche es Programmen ermöglicht, OpenGL-Befehle über das X11-Protokoll zu versenden. GLX ist netzwerktransparent, d. h. die Grafik kann auch über das Netzwerk transportiert werden. Schneller ist das direct rendering, mit dem GLX entweder ersetzt oder erweitert werden kann.
GLX wurde von Silicon Graphics entworfen und befindet sich momentan in Version 1.4. Der Free-X-Server X.Org unterstützt GLX (inkl. Mesa und DRI) ab Version X11R6.7.0, der X-Server XFree86 ab Version 4.0.
Die Software wurde 1999 zunächst unter einer proprietären Lizenz veröffentlicht. Am 19. September 2008 stellte SGI eine neue Version seiner "SGI Free Software License B" vor. Seit dieser Version steht die Software im Einklang mit dem Verständnis der Open-Source-Gemeinschaft von freier Software. Die FSF begrüßte diesen Schritt ebenfalls.[2]
Eigenschaften
GLX besteht aus drei Teilen:
Einer API, welche dazu benutzt wird, OpenGL-Programme für das X-Window-System zu schreiben.
Einer Erweiterung des X-Protokolls, welches dem Client (der OpenGL-Applikation) erlaubt, 3D-Render-Befehle an den X-Server (die Software, welche für die Anzeige zuständig ist) zu senden. Client und Server können dabei auf verschiedenen Rechnern laufen.
Einer Erweiterung des X-Servers, welche die empfangenen Render-Befehle übersetzt und sie an die hardwarebeschleunigte 3D-Grafikkarte sendet oder sie per Software, unter Verwendung der Mesa-Bibliothek, rendert (was sehr viel langsamer ist).
Wenn ein Client und ein Server auf demselben Rechner laufen und eine 3D-beschleunigte Grafik mit passendem Treiber verfügbar ist, können die letzteren beiden Komponenten mit Hilfe von DRI umgangen werden: Das Client-Programm kann dann direkt auf die Grafikhardware zugreifen, was weitere Geschwindigkeitsvorteile bringt.
Auf einem laufenden X-Server können eine Menge an Diagnoseinformationen über GLX, eingeschlossen der GLX-Optiken, die das System unterstützt, mit dem Befehl „glxinfo“ extrahiert werden. Das Demonstrationswerkzeug „glxgears“ unterstützt eine grobe Einschätzung der Geschwindigkeit der 3D-Render-Einrichtung.
WGL – eine zu GLX äquivalente Schnittstelle zwischen dem Windows-Fenstersystem und OpenGL
CGL – eine zu GLX äquivalente Schnittstelle zwischen dem macOS-Fenstersystem und OpenGL
EGL – eine zu GLX äquivalente Schnittstelle zwischen dem Fenstersystem (bzw. Anwendungen darin) und OpenGL, OpenGL ES sowie OpenVG. EGL wird auch auf eingebetteten Systemen ohne Fenstermanager verwendet, z. B. in der Avionik oder anderen Fahrzeugen