ГЛКС
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2012 г. ) |
Оригинальный автор(ы) | СГИ |
---|---|
Первоначальный выпуск | 1992 |
Стабильная версия | 1,4 / 16 декабря 2005 г. |
Написано в | С |
Лицензия | Лицензия SGI FreeB [1] |
Веб-сайт | дри |
GLX ( инициализм для «Расширения Open GL для системы X Window») — это расширение основного протокола системы X Window , обеспечивающее интерфейс между OpenGL и системой X Window , а также расширения для самого OpenGL. Это позволяет программам, желающим использовать OpenGL, делать это в окне, предоставляемом системой X Window. GLX различает два «состояния»: косвенное и прямое.
История
[ редактировать ]Компания Silicon Graphics разработала GLX в рамках усилий по поддержке OpenGL в системе X Window . В 1999 году SGI выпустила GLX под лицензией с открытым исходным кодом . [2] что позволило включить его в исходный код XFree86 версии 4.0 в 2000 году. Оттуда код был унаследован разветвленной X.Org Foundation версией X Window System X11R6.7.0 . 19 сентября 2008 года SGI создала новую лицензию SGI FreeB License версии 2.0, которая «теперь отражает бесплатную лицензию X11, используемую X.Org» и «соответствует широко принятому определению «бесплатности» в сообществе свободного и открытого программного обеспечения». [3] В 2009 году Фонд свободного программного обеспечения одобрил 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, названный swrast_dri.so
, улучшая связь Mesa и X-сервера. Также в 2008 году был представлен новый DRI2 для замены DRI, а вместе с ним и новая модель, основанная на настройке режима ядра . В 2011 году стартовал проект Glamour , целью которого было добавить универсальный драйвер 2D X с аппаратным ускорением, основанный на OpenGL. В 2013 году Адам Джексон серьезно переписал код GLX, чтобы объединить различные пути от Glamour, непрямого рендеринга... до одного уникального пути к библиотеке OpenGL libGL. [7]
- 2D-драйверы внутри X-сервера
- Косвенный рендеринг через GLX с использованием Utah GLX
- Наконец, весь доступ осуществляется через Менеджер прямого рендеринга.
Функции
[ редактировать ]GLX состоит из трех частей:
- API , который предоставляет функции OpenGL приложению X Window System.
- Расширение протокола X, позволяющее клиенту (приложению OpenGL) отправлять команды 3D-рендеринга на X-сервер (программное обеспечение, отвечающее за отображение). Клиентское и серверное программное обеспечение могут работать на разных компьютерах.
- Расширение X-сервера, которое получает команды рендеринга от клиента и передает их установленной библиотеке OpenGL.
Если клиент и сервер работают на одном компьютере и доступна ускоренная 3D-графическая карта с подходящим драйвером, первые два компонента можно обойти с помощью DRI . В этом случае клиентскому приложению предоставляется прямой доступ к видеооборудованию через несколько уровней API.
Реализации
[ редактировать ]- Mesa 3D – с открытым исходным кодом бесплатная библиотека , которая реализует несколько графических API, а также доступные бесплатные драйверы устройств с открытым исходным кодом: графика ; В крайнем случае, Mesa 3D также предлагает резервный программный рендеринг .
- Собственные драйверы устройств для графических чипов также включают реализацию GLX.
См. также
[ редактировать ]- WGL – эквивалентный интерфейс Microsoft Windows для OpenGL.
- CGL — эквивалентный интерфейс MacOS для OpenGL.
- EGL - аналогичный кроссплатформенный интерфейс между OpenGL ES или VG и базовой оконной системой собственной платформы.
- GLUT — библиотека утилит для программ OpenGL.
Ссылки
[ редактировать ]- ^ осс-владельцы проектов (2012). «История и самая последняя версия лицензии B свободного программного обеспечения SGI» . Силикон Графикс Интернэшнл . Архивировано из оригинала 20 апреля 2017 г. Проверено 11 апреля 2017 г.
- ^ Джон Лич (2012). «Пример реализации OpenGL» . Силикон Графикс Интернэшнл . Архивировано из оригинала 14 мая 2011 г. Проверено 11 апреля 2017 г.
- ^ «SGI продолжает раскрывать свои вклады в OpenGL» . 19 сентября 2008 г. Архивировано из оригинала 11 февраля 2012 г.
- ^ Ли, Мэтт (19 сентября 2008 г.). «Спасибо SGI за освобождение рабочего стола GNU/Linux 3D!» . Фонд свободного программного обеспечения . Проверено 11 апреля 2017 г.
- ^ Бретт (13 января 2009 г.). «3D-графика — это 100% бесплатное программное обеспечение» . Фонд свободного программного обеспечения . Проверено 11 апреля 2017 г.
- ^ «ДРИ – GLcore» . сайт freedesktop.org . 20 июля 2016 г. Проверено 11 апреля 2017 г.
- ^ Джексон, Адам (04 февраля 2014 г.). «Переписывание GLX, чтобы переписать X» . Linux.conf.au . Архивировано из оригинала 21 декабря 2021 г. Проверено 11 апреля 2017 г.