Исходный автор (-ы) | SGI |
---|---|
Первоначальный выпуск | 1992 |
Стабильный выпуск | 1.4 / 16 декабря 2005 г. |
Написано на | C |
Лицензия | Лицензия SGI FreeB |
Веб-сайт | dri.freedesktop.org / wiki / GLX / |
GLX (инициализм для «Открыть GL расширение для X оконной системы») является расширением Основной протокол X Window System, обеспечивающий интерфейс между OpenGL и X Window System, а также расширения самого OpenGL. Он позволяет программам, желающим использовать OpenGL, делать это в окне, предоставляемом системой X Window. GLX различает два «состояния»: косвенное состояние и прямое состояние.
Silicon Graphics разработала GLX как часть их усилий по поддержке OpenGL в X Window System. В 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 году Фонд свободного программного обеспечения одобрил лицензию SGI Free License B как лицензию на свободное программное обеспечение, а GLX как важный графический проект свободного программного обеспечения. По состоянию на 2011 год GLX достиг версии 1.4.
Первая внутренняя реализация GLX API, называемая GLcore, загружала версию программного средства визуализации Mesa внутри X-сервера и отображала команды OpenGL в окне или растровом изображении. С разработкой DRI была добавлена возможность использовать OpenGL с аппаратным ускорением через прямые контексты (в основном используется в видеоиграх ). В 2006 году популяризация вложенного X-сервера Xgl и Compiz оконного менеджера композитинга привела к разработке Accelerated Indirect GLX (AIGLX ). AIGLX обеспечивает аппаратное ускорение приложений GLX (непрямой контекст), загружая драйвер Mesa DRI внутри X-сервера. Этот метод обеспечивает совместное использование объектов GL между X-клиентами с использованием косвенных контекстов (все они находятся в одном адресном пространстве на X-сервере), а также между X-клиентом и оконным менеджером композитинга, тем самым ускоряя композицию. В 2008 году привязка GLcore к программному рендереру Mesa была переписана в интерфейсный модуль DRI, названный swrast_dri.so, улучшив связь Mesa и X-сервера. Также в 2008 году был представлен новый DRI2 для замены DRI, а вместе с ним и новая модель, основанная на настройке режима ядра. В 2011 году стартовал проект Glamour, направленный на добавление универсального драйвера 2D X с аппаратным ускорением, основанного на OpenGL. В 2013 году Адам Джексон полностью переписал код GLX, чтобы объединить различные пути от Glamour, непрямого рендеринга,... в один уникальный путь к библиотеке OpenGL libGL.
2D-драйверы внутри X-сервера
Косвенный рендеринг через GLX с использованием Utah GLX
Наконец, весь доступ осуществляется через Direct Rendering Manager
В ядре Linux 3.12 узлы рендеринга были объединены, а KMS был отделен. Wayland реализует прямой рендеринг через EGL
GLX состоит из трех частей:
Если клиент и сервер работают на доступен тот же компьютер и ускоренная трехмерная графическая карта с использованием подходящего драйвера, первые два компонента можно обойти с помощью DRI. В этом случае клиентскому приложению разрешается прямой доступ к видеооборудованию через несколько уровней API.