GLX

Z Wikipedii, wolnej encyklopedii
GLX
ilustracja
Autor SGI
Pierwsze wydanie 1992
Aktualna wersja stabilna 1.4 / 2011
Język programowania C
Rodzaj interfejs pośredniczący
Licencja SGI FreeB License[1]
Strona internetowa
Schemat zależności GLX/AIGX z technologią Direct Rendering Infrastructure

GLX (ang. OpenGL Extension to the X Window System) – interfejs łączący OpenGL z X Window System i zapewniający działającym w oknach X Window System dostęp do funkcji OpenGL.

Historia[edytuj | edytuj kod]

Silicon Graphics opracowało GLX w ramach ich wysiłków na rzecz wsparcia OpenGL w X Window System. W 1999 r. SGI wydał GLX na wolnej licencji[2], pozwalając tym samym na włączenie jego kodu do wersji 4.0 XFree86 w 2000 r. Stamtąd kod został odziedziczony przez forka XFree86 - Xorg i włączony do wersji X11R6.7.0.

19 września 2008 SGI utworzyło licencję SGI FreeB License w wersji 2.0, która „teraz powiela licencję X11 używaną przez X.Org” oraz „spełnia przyjęte przez społeczność FLOSS założenia wolnych licencji”[3].

W 2011 r. opublikowano wersję 1.4 GLX, wraz z DRI i Mesą.

Pierwsza wewnętrzna implementacja API GLX, nazwana GLcore[4], ładowała programową wersję rendera Mesa w serwerze X i renderowała komendy OpenGL w oknie lub pixmapie. Wraz z rozwojem DRI, została dodana możliwość używania przyspieszanego sprzętowo OpenGL poprzez bezpośrednie konteksty (pierwotnie używane tylko przez gry).

W 2008 r. dowiązanie w GLcore do programowego rendera Mesa zostało przepisane jako moduł interfejsu DRI swrast_dri.so, zwiększając integrację Mesy z serwerem X. Także w 2008 r., zaprezentowany został nowy DRI2 jako następca DRI, nowy DRI2 bazuje na KMS.

W 2011 r. powstał projekt Glamor, którego celem było dodanie ogólnego sprzętowo przyspieszanego, opartego na OpenGL sterownika 2D dla serwera X[5].

Cechy GLX[edytuj | edytuj kod]

GLX składa się z trzech części:

  • API zapewniające wsparcie dla OpenGL w aplikacjach X Window System
  • Rozszerzenie protokołu X, które pozwala klientowi (aplikacji OpenGL) przesłać polecenia odpowiedzialne za renderowanie grafiki 3D serwerowi X odpowiedzialnemu za wyświetlanie, a klient i program mogą działać na różnych komputerach
  • Rozszerzenie Serwera X, które przechwytuje od klienta polecenia renderujące i przekazuje je bibliotece OpenGL (najczęściej sprzętowo akcelerowanej biblioteki lub bibliotece Mesa, która w ostateczności pozwala na renderowanie programowe grafiki.

Jeśli klient i serwer działają na tym samym komputerze oraz mają dostęp do karty graficznej wspierającej akcelerację sprzętową grafiki 3D z użyciem odpowiedniego sterownika, te dwa komponenty mogą być przekazywane do DRI. W tym przypadku program może mieć bezpośredni dostęp do karty graficznej.

Obszerne informacje diagnostyczne dotyczące GLX, włącznie z GLX visual mogą zostać uzyskane za pomocą polecenia glxinfo. Narzędzie demonstracyjne glxgears pozwala na sprawdzenie szybkości renderowania grafiki oraz sprawdzenie, czy przyspieszane sprzętowo biblioteki są prawidłowo zainstalowane, jest również używane jako narzędzie do przeprowadzania benchmarku, chociaż nie zostało zaprojektowane do tego celu.

Zobacz też[edytuj | edytuj kod]

  • AIGLX
  • GLUT
  • EGL: podobny wieloplatformowy interfejs pośredniczący między OpenGL ES lub VG oraz systemem graficznym

Linki zewnętrzne[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. SGI - Developer Central Open Source | SGI Free Software License B. [dostęp 2012-01-31]. [zarchiwizowane z tego adresu (2017-04-20)].
  2. Jon Leech: OpenGL® Sample Implementation. Silicon Graphics International, 2012. [dostęp 2017-04-11]. [zarchiwizowane z tego adresu (2011-05-14)].
  3. SGI Further Opens Its OpenGL Contributions
  4. DRI - GLcore. freedesktop.org, 20-07-2016. [dostęp 2017-04-11].
  5. What is Glamor?. FreeDesktop.org. [dostęp 2014-02-10].