Библиотека обработки расширений OpenGL (GLEW) — это кроссплатформенная библиотека загрузки расширений C/C++ с открытым исходным кодом. GLEW предоставляет эффективные механизмы времени выполнения для определения того, какие расширения OpenGL поддерживаются на целевой платформе. Функциональность ядра и расширений OpenGL представлена в одном заголовочном файле. GLEW был протестирован на различных операционных системах, включая Windows, Linux, Mac OS X, FreeBSD, Irix и Solaris.
http://glew.sourceforge.net/
https://github.com/nigels-com/glew
Текущая версия — 2.2.0. (Журнал изменений)
Исходники доступны в формате ZIP или TGZ.
Бинарные файлы Windows для 32- и 64-битных версий.
Снимки могут содержать новые функции, исправления ошибок или новые расширения OpenGL, предшествующие протестированным официальным выпускам.
glew-20220402.tgz GLEW 2.2.0 - с исправлением glCreateProgressFenceNVX
Настоятельно рекомендуется выполнять сборку из моментального снимка выпуска tgz или zip. Рабочий процесс генерации кода представляет собой сложную смесь gnu make, perl и python, которая лучше всего работает на Linux или Mac. Известно, что генерация кода работает в Windows с использованием MSYS2. Для большинства конечных пользователей GLEW официальные версии являются лучшим выбором с первоклассной поддержкой.
Исторически GNU make является основной системой сборки GLEW. Он включает в себя цели для создания источников и заголовков для целей обслуживания.
Debian/Ubuntu/Mint: $ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev
RedHat/CentOS/Fedora: $ sudo yum install libXmu-devel libXi-devel libGL-devel
FreeBSD: # pkg install xorg lang/gcc git cmake gmake bash python perl5
$ make
$ sudo make install
$ make clean
Цели: all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall
Переменные: SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=
Примечание. Возможно, вам придется сначала вызвать make
в папке auto .
$ sudo apt install libegl1-mesa-dev
$ make SYSTEM=linux-egl
$ sudo apt install libosmesa-dev
$ make SYSTEM=linux-osmesa
$ sudo apt install mingw-w64
$ make SYSTEM=linux-mingw32
$ make SYSTEM=linux-mingw64
Сборка cmake в основном поддерживается участниками. Из-за множества вариантов использования это поддерживается по мере возможности . Запросы на вытягивание приветствуются.
Требуется CMake 3.16 или выше.
Debian/Ubuntu/Mint: $ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git
RedHat/CentOS/Fedora: $ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git
$ cd build
$ cmake ./cmake
$ make -j4
Цель | Описание |
---|---|
светиться | Создайте общую библиотеку glew. |
glew_s | Создайте статическую библиотеку glew. |
glewinfo | Создайте исполняемый файл glewinfo (требуется, чтобы BUILD_UTILS был ON ). |
визуальная информация | Создайте исполняемый файл visualinfo (требуется, чтобы BUILD_UTILS был ON ). |
установить | Установите все включенные цели в CMAKE_INSTALL_PREFIX . |
чистый | Очистите артефакты сборки. |
все | Создайте все включенные цели (цель по умолчанию). |
Переменные | Описание |
---|---|
BUILD_UTILS | Создайте исполняемые файлы glewinfo и visualinfo . |
GLEW_REGAL | Стройте в режиме Regal. |
GLEW_OSMESA | Сборка в закадровом режиме Mesa. |
BUILD_FRAMEWORK | Сборка как MacOSX Framework. Рекомендуется установить для CMAKE_INSTALL_PREFIX /Library/Frameworks . |
Используйте предоставленный файл проекта Visual Studio в build/vc15/.
Также предоставляются проекты для vc6, vc10, vc12 и vc14.
Доступно в Mingw
Требования: bash, make, gcc
$ mingw32-make
$ mingw32-make install
$ mingw32-make install.all
Альтернативная цепочка инструментов: SYSTEM=mingw-win32
Доступно в Msys2 и/или Mingw-w64.
Требования: bash, make, gcc
$ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
$ make
$ make install
$ make install.all
Альтернативная цепочка инструментов: SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64
glewinfo
— это инструмент командной строки, полезный для проверки возможностей реализации OpenGL и поддержки GLEW. Пожалуйста, включите glewinfo.txt
в отчеты об ошибках, если это необходимо.
---------------------------
GLEW Extension Info
---------------------------
GLEW version 2.0.0
Reporting capabilities of pixelformat 3
Running on a Intel(R) HD Graphics 3000 from Intel
OpenGL version 3.1.0 - Build 9.17.10.4229 is supported
GL_VERSION_1_1: OK
---------------
GL_VERSION_1_2: OK
---------------
glCopyTexSubImage3D: OK
glDrawRangeElements: OK
glTexImage3D: OK
glTexSubImage3D: OK
...
Для создания GLEW с нуля необходима среда Unix или Mac, позволяющая включать новые расширения или настраивать генерацию кода. Данные расширения восстанавливаются из исходного каталога верхнего уровня с помощью:
make extensions
Альтернативой созданию исходников GLEW с нуля является загрузка заранее созданного (неподдерживаемого) снимка:
https://sourceforge.net/projects/glew/files/glew/snapshots/
GLEW в настоящее время поддерживается Найджелом Стюартом с исправлениями ошибок, поддержкой новых расширений OpenGL и новыми выпусками.
GLEW разработали Милан Икитс и Марсело Магаллон. Аарон Лефон, Джо Книсс и Крис Вайман были первыми пользователями, а также помогали в процессе проектирования и отладки.
Аббревиатура GLEW происходит от имени Аарона Лефона. Паси Кярккяйнен выявил и устранил несколько проблем с GLX и SDL. Нейт Робинс создал утилиту wglinfo
, в которую Майкл Уиммер внес изменения.
GLEW приветствует вклад сообщества. Обычно они координируются через задачи или запросы на извлечение в веб-интерфейсе GitHub.
Обязательно укажите детали платформы и набора инструментов компилятора при отправке отчета об ошибке. Вывод glewinfo
также может быть весьма полезен для обсуждения.
Обычно GLEW выпускается раз в год, примерно во время конференции по компьютерной графике Siggraph. Если вы не используете текущую версию GLEW, обязательно проверьте, исправлена ли там проблема или ошибка.
GLEW изначально создан на основе проекта EXTGL Льва Повалахева. Исходный код лицензируется по модифицированной лицензии BSD, лицензии Mesa 3-D (MIT) и лицензии Khronos (MIT).
Сценарии автоматической генерации кода выпускаются под лицензией GNU GPL.