как использовать glad.h и glew.h одновременно? - PullRequest
1 голос
/ 22 апреля 2020

Моя версия opengl 4.0 и использую glad3.3. Я хочу использовать glTexEnvi(), но только довольна 4.6 поддерживает эту функцию, и я не могу ее использовать. Когда я включал и glad.h, и glew.h, произошла ошибка (error C1189:#error:gl.h included before glew.h). Так как же я могу использовать glad.h и glew.h одновременно? или есть другое решение для использования glTexEnvi()? Кто-нибудь поможет?

1 Ответ

0 голосов
/ 22 апреля 2020

Ты не. Рад и GLEW оба являются загрузчиками OpenGL. Оба делают одно и то же; они обеспечивают привязку функции OpenGL. Используйте одну или другую.

glTextEnv - устаревшая функция OpenGL. Он предоставляется только в профиле совместимости Контекст OpenGL (соответственно OpenGL 1.x и 2.x) и OpenGL ES 1.0.
Таким образом glTexEnv недоступен в контексте основного профиля, OpenGL ES 2.0 и OpenGL 3.x.

См. Спецификация OpenGL - реестр Khronos OpenGL и Спецификация OpenGL ES - Реестр Khronos OpenGL ES

Необходимо использовать совместимость профиль OpenGL 3.3 Context. Убедитесь, что тип профиля «совместимость» при создании файлов загрузчика OpenGL, тогда определено glTexEnvi.


Рад - генератор загрузчика. Вы должны указать версию OpenGL (ES) для вашей целевой среды. Рад, что генерирует API, который обеспечивает точно доступный набор инструкций для указанной среды и соответственно версии OpenGL (ES). Если инструкция не «существует» в заголовочном файле, то она не поддерживается указанной версией.

Для сравнения GLEW предоставляет все функции OpenGL в одном заголовочном файле. Вам нужно позаботиться о том, чтобы функция поддерживалась контекстом OpenGL.

...