ГЛКС

Extension to the X Window System core protocol
ГЛКС
Оригинальный автор(ы)СГИ
Первоначальный выпуск1992
Стабильный релиз
1.4 / 16 декабря 2005 г.
Написано вС
ЛицензияЛицензия SGI FreeB [1]
Веб-сайтdri.freedesktop.org/wiki/GLX/

GLX ( аббревиатура от "Open GL Extension to the X Window System") — расширение основного протокола X Window System , предоставляющее интерфейс между OpenGL и X Window System , а также расширения самого OpenGL. Он позволяет программам, желающим использовать OpenGL, делать это в окне, предоставляемом X Window System. GLX различает два "состояния": косвенное состояние и прямое состояние.

История

Silicon Graphics разработала GLX как часть своих усилий по поддержке OpenGL в X Window System . В 1999 году SGI выпустила GLX под лицензией с открытым исходным кодом , [2] позволив включить его в исходный код XFree86 версии 4.0 в 2000 году. Оттуда код был унаследован ответвленной версией X.Org Foundation X Window System X11R6.7.0. 19 сентября 2008 года SGI создала новую лицензию SGI FreeB версии 2.0, которая «теперь отражает свободную лицензию X11, используемую X.Org», и «соответствует общепринятому определению „свободного“ в сообществе свободного и открытого программного обеспечения». [3] В 2009 году Free Software Foundation одобрила лицензию SGI Free License B как лицензию свободного программного обеспечения , а GLX как важный проект свободного программного обеспечения в области графики. [4] [5] По состоянию на 2011 год GLX достиг версии 1.4.

Первая внутренняя реализация GLX API, называемая GLcore, [6] загружала версию программного рендерера Mesa внутрь X-сервера и отображала команды OpenGL в окне или пиксельной карте. С разработкой DRI была добавлена ​​возможность использования аппаратного ускорения OpenGL через прямые контексты (в основном используемые видеоиграми ). В 2006 году популяризация вложенного Xgl X-сервера и оконного менеджера композитинга Compiz привела к разработке Accelerated Indirect GLX ( AIGLX ). AIGLX привносит аппаратное ускорение в приложения GLX (косвенный контекст), загружая драйвер Mesa DRI внутрь X-сервера. Этот метод позволяет совместно использовать объекты GL между X-клиентами с использованием косвенных контекстов (все они находятся в одном адресном пространстве на X-сервере), а также между X-клиентом и оконным менеджером композитинга, тем самым ускоряя композицию. В 2008 году привязка GLcore к программному рендереру Mesa была переписана как модуль интерфейса DRI, названный , улучшающий связь Mesa и X-сервера. Также в 2008 году был представлен новый DRI2 для замены DRI, а вместе с ним и новая модель, основанная на Kernel mode-setting . В 2011 году стартовал проект Glamor , целью которого было добавить универсальный аппаратно-ускоренный 2D-драйвер X на основе OpenGL. В 2013 году Адам Джексон провел масштабную переработку кода GLX, чтобы объединить различные пути от Glamor, косвенного рендеринга, ... в один уникальный путь к библиотеке OpenGL libGL. [7]swrast_dri.so

Функции

Демоверсия GLX (glxgears) включена в X11

GLX состоит из трех частей:

  1. API , предоставляющий функции OpenGL приложению X Window System.
  2. Расширение протокола X, позволяющее клиенту (приложению OpenGL) отправлять команды 3D-рендеринга на сервер X (программное обеспечение, отвечающее за отображение). Клиентское и серверное программное обеспечение могут работать на разных компьютерах.
  3. Расширение X-сервера, которое получает команды рендеринга от клиента и передает их установленной библиотеке OpenGL.

Если клиент и сервер работают на одном компьютере и доступна ускоренная 3D-графическая карта с подходящим драйвером, первые два компонента можно обойти с помощью DRI . В этом случае клиентскому приложению разрешается прямой доступ к видеооборудованию через несколько уровней API.

Реализации

Смотрите также

  • WGL – эквивалент интерфейса Microsoft Windows для OpenGL
  • CGL — эквивалентный интерфейс OpenGL для macOS
  • EGL – аналогичный кроссплатформенный интерфейс между OpenGL ES или VG и базовой собственной оконной системой платформы
  • GLUT – библиотека утилит для программ OpenGL

Ссылки

  1. ^ oss-project-owners (2012). "История и самая последняя версия лицензии SGI Free Software License B". Silicon Graphics International . Архивировано из оригинала 20-04-2017 . Получено 11-04-2017 .
  2. ^ Джон Лич (2012). "OpenGL Sample Implementation". Silicon Graphics International . Архивировано из оригинала 2011-05-14 . Получено 2017-04-11 .
  3. ^ "SGI Further Opens Its OpenGL Contributions". 2008-09-19. Архивировано из оригинала 2012-02-11.
  4. ^ Ли, Мэтт (2008-09-19). «Спасибо SGI за освобождение рабочего стола GNU/Linux 3D!». Free Software Foundation . Получено 2017-04-11 .
  5. ^ brett (2009-01-13). "3D-графика — это 100% свободное программное обеспечение". Free Software Foundation . Получено 2017-04-11 .
  6. ^ "DRI – GLcore". freedesktop.org . 2016-07-20 . Получено 2017-04-11 .
  7. ^ Джексон, Адам (2014-02-04). "Переписывание GLX для переписывания X". Linux.conf.au . Архивировано из оригинала 2021-12-21 . Получено 2017-04-11 .
  • Графика OpenGL® с X Window System®
  • SGI - Открытый исходный код/GLX на Wayback Machine (архив 2009-06-08)
  • Текущие спецификации и справочные страницы OpenGL API, языка шейдеров OpenGL и GLX
Retrieved from "https://en.wikipedia.org/w/index.php?title=GLX&oldid=1224129330"