Настройка и использование библиотеки абстракции 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.
В случае, если переменная GRAPHICS_ROOT указывает на директорию, не содержащую, подходящих библиотек, производится их поиск по стандартному пути установки Mesa - /usr/lib/graphics/mesa . |
Для корректной идентификации и загрузки вендорных библиотек путь из переменной GRAPHICS_ROOT должен быть включен в LD_LIBRARY_PATH перед стандартными путями и в особенности перед /usr/lib . |
Для диагностики проблем и изменения логики работы библиотеки могут быть использованы следующие переменные:
$GRAPHICS_ROOT/graphics
.conf (первая секция display имеет номер 1).
Предыдущий раздел: Разработка OpenGL приложений