GLX

GLX
Basisdaten

Entwickler Silicon Graphics, Inc.
Erscheinungsjahr 1992
Aktuelle Version 1.4
(16. Dezember 2005)
Betriebssystem unixoide
Programmier­sprache C
Kategorie Programmierschnittstelle (API)
Lizenz SGI FreeB License[1]
sgi.com/products/software
GLX und AIGLX versus direct rendering.
Wayland verwendet EGL.

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]

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.

glxgears

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.

Die Windows-Variante wird WGL genannt.

  • 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
  • AIGLX – erweitert GLX um Direct Rendering
  1. SGI Free Software License B v2.0. In: Software Package Data Exchange. 18. September 2008, abgerufen am 9. Mai 2024 (englisch).
  2. SGI – OpenGL unter freier Lizenz