This article needs additional citations for verification. (July 2012) |
Оригинальный автор(ы) | СГИ |
---|---|
Первоначальный выпуск | 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 состоит из трех частей:
Если клиент и сервер работают на одном компьютере и доступна ускоренная 3D-графическая карта с подходящим драйвером, первые два компонента можно обойти с помощью DRI . В этом случае клиентскому приложению разрешается прямой доступ к видеооборудованию через несколько уровней API.