GLX - GLX

GLX
Оригинальный автор (ы) SGI
Первый выпуск 1992 г.
Стабильный выпуск
1.4 / 16 декабря 2005 г.
Написано в C
Лицензия Лицензия SGI FreeB
Веб-сайт 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. GLX различает два «состояния»: косвенное состояние и прямое состояние.

История

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

Первая внутренняя реализация GLX API, называемая GLcore, загружала версию программного средства визуализации 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, а вместе с ним и новая модель, основанная на настройке режима ядра . В 2011 году стартовал проект Glamour , направленный на добавление универсального драйвера 2D X с аппаратным ускорением, основанного на OpenGL. В 2013 году Адам Джексон коренным образом переписал код GLX, чтобы объединить различные пути от Glamour, непрямого рендеринга ... до одного уникального пути к библиотеке OpenGL libGL. swrast_dri.so

Функции

Демо GLX ( glxgears ) в комплекте с X11

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

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

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

Реализации

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

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

Рекомендации

Внешние ссылки