GLVND — универсальный OpenGL загрузчик

Настройка и использование библиотеки абстракции 3D стеков.

Библиотека призвана обеспечить слоя абстракции для совместного использования различных 3D стеков. Являясь неотъемлемой частью графической подсистемы, данный модуль играет роль загрузчика 3D стека для любого прикладного приложения в системе.

В данном разделе приводятся общие сведения по использованию библиотеки GLVND (The GL Vendor-Neutral Dispatch library).

Архитектура библиотеки
Условия работоспособности библиотеки
Дополнителные переменные окружения

Архитектура библиотеки

Особенности функционирования библиотеки несколько отличаются от оригинального проекта как при реализации группы стандартов OpenGL ES:

┌────────────────────────────────────┐ │ │ ┌─────┤ Приложение │ │ │ │ │ └─────┬───────────────────────┬──────┘ │ │ │ │ ┌─────▾─────┐ │ ┌─────────────────────┐ │ │ │ │ │ │ │ │ libGL*.so │ │ │ Графическая │ │ │ │ │ │ подсистема │ │ └─────▴─────┘ │ │ │ │ │ │ └──────────▴──────────┘ │ ┌─────▾────────────┐ ┌──────▾──────┐ │ │ │ │ │ ├──────────────────────────┘ │ │ libGLdispatch.so ◂───▸ libEGL.so │ │ │ │ │ ├──────────┬──────────────────┐ │ └───────▴──────────┘ └─────────────┘ │ │ │ │ │ │ │ ┌───────▾────────────────────────────┐ ┌──────▾──────┐ ┌───────▾───────┐ │ │ │ │ │ │ │ └─────▸ libOpenGL.so │ │ GLES вендор │ │ GLES вендор 2 │ │ │ │ │ │ │ └────────────────────────────────────┘ └─────────────┘ └───────────────┘

так и при использовании стандартов группы OpenGL:

┌────────────────────────────────────┐ ┌─────────────────────┐ │ │ │ │ │ Приложение │ │ Графическая │ │ │ │ подсистема │ └─────────────────────────────┬──────┘ │ │ │ └──────────▴──────────┘ ┌──────────────────┐ ┌──────▾──────┐ │ │ │ │ ├──────────────────────┘ │ libGLdispatch.so ◂───▸ libGL.so │ │ │ │ ├─────────┬────────────────┐ └──────────────────┘ └─────────────┘ │ │ │ │ ┌─────▾─────┐ ┌──────▾──────┐ │ │ │ │ │ GL вендор │ │ GL вендор 2 │ │ │ │ │ └───────────┘ └─────────────┘

Условия работоспособности библиотеки

Независимо от используемой группы стандартов библиотека производит поиск вендорных библиотек через переменную окружения GRAPHICS_ROOT. Ее установка детально описана в соответствующем разделе. Идентификация конкретных библиотек производится в соответствии с содержимым конфигурационного файла graphics.conf.


Note: В случае, если переменная GRAPHICS_ROOT указывает на директорию, не содержащую, подходящих библиотек, производится их поиск по стандартному пути установки Mesa - /usr/lib/graphics/mesa.


Caution: Для корректной идентификации и загрузки вендорных библиотек путь из переменной GRAPHICS_ROOT должен быть включен в LD_LIBRARY_PATH перед стандартными путями и в особенности перед /usr/lib.

Дополнителные переменные окружения

Для диагностики проблем и изменения логики работы библиотеки могут быть использованы следующие переменные:

GLVND_DEBUG
Любое не пустое значение включает дополнительную отладку при детектировании вендорных библиотек.
GLVND_TRACE
Любое не пустое значение включает трассировку при вызовах функций вендорных библиотек.
GLVND_DISPLAY_ID
Переопределяет идентификатор дисплея при детектировании вендорных библиотек через $GRAPHICS_ROOT/graphics.conf (первая секция display имеет номер 1).




Предыдущий раздел: Разработка OpenGL приложений