Использование GLEW для использования расширений OpenGL под Windows

StackOverflow https://stackoverflow.com/questions/17370

  •  08-06-2019
  •  | 
  •  

Вопрос

Я использую расширения OpenGL в Windows болезненный способ.Является ли GLEW более простым путем?Как мне начать с этого?

Это было полезно?

Решение

Да, тот самый Библиотека Wrangler расширений OpenGL (GLEW) - это безболезненный способ использования расширений OpenGL в Windows.Вот как с этого начать:

Определите расширение OpenGL и API-интерфейсы расширений, которые вы хотите использовать.Расширения OpenGL перечислены в Реестр расширений OpenGL.

Проверьте, поддерживает ли ваша графическая карта расширения, которые вы хотите использовать.Загрузите и установите последние версии драйверов и SDK для вашей видеокарты.

Последние версии NVIDIA OpenGL SDK отправляйте с GLEW.Если вы используете это, то вам не нужно выполнять некоторые из следующих шагов.

Скачать РАДОВАТЬСЯ и распакуйте его.

Добавьте ГЛЮ bin путь к вашим окнам ПУТЬ переменная среды.В качестве альтернативы, вы также можете разместить glew32.dll в каталоге, где Windows собирает свои библиотеки DLL.

Добавьте ГЛЮ включать в себя путь к списку каталогов include вашего компилятора.

Добавьте ГЛЮ библиотека путь к списку каталогов библиотеки вашего компилятора.

Проинструктируйте свой компилятор использовать glew32.библиотека во время связывания.Если вы используете компиляторы Visual C ++, то один из способов сделать это - добавить в свой код следующую строку:

#pragma comment(lib, "glew32.lib")

Добавить #include <GL/glew.h> строка в вашем коде.Убедитесь, что это помещено над заголовочными файлами includes of other GL.(Возможно, вам на самом деле не нужны заголовочные файлы GL, если вы включаете glew.h.)

Инициализируйте GLEW с помощью glewInit() после того, как вы инициализируете GLUT или GL.Если это не удается, значит, что-то не так с вашей настройкой.

if (GLEW_OK != glewInit())
{
    // GLEW failed!
    exit(1);
}

Проверьте, доступны ли расширения, которые вы хотите использовать, теперь через GLEW.Вы делаете это, проверяя логическую переменную с именем РАДОВАТЬСЯ_ ваше_расширение_имя который раскрывается GLEW.

Пример:

if (!GLEW_EXT_framebuffer_object)
{
    exit(1);
}

Вот и все!Теперь вы можете использовать вызовы расширений OpenGL в своем коде так же, как если бы они существовали естественным образом для Windows.

Другие советы

Лично я бы не стал использовать команду exit.

Я бы создал исключение, чтобы вы могли очистить любую другую инициализацию в конце функции.

т. е.:

try
{
    // init opengl/directx
    // init directaudio
    // init directinput

    if (GLEW_OK != glewInit())
    {
        throw std::exception("glewInit failed");
    }
}
catch ( const std::exception& ex )
{
    // message to screen using ex.what()
    // clear up
}

И я согласен с О.Дж. - если вы хотите писать учебные пособия для других, то это действительно неподходящее место для этого.Уже есть множество хороших мест для руководств по opengl. Попробуйте, например, вот это.

Я потерял некоторое время, но в конце концов мне удалось заставить GLEW работать.Я использую Windows7 (x64), Eclipse CDT и MinGW, и способ таков:

Загрузите MSYS (для MinGW) и убедитесь, что MinGW установлен правильно (переменная PATH enviroinment установлена правильно).:http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=

После установки MSYS перейдите в:http://glew.sourceforge.net/ и загрузите пакет TGZ, который предназначен для использования с системами UNIX

Затем откройте пакет (вы также можете использовать 7zip) и найдите "Makefile".Откройте его и с помощью текстового редактора (блокнот должен работать нормально) найдите строку, содержащую "GLEW_DEST", и замените ее чем-то вроде "GLEW_DEST? = C:/MinGW".

Теперь вы готовы к работе, откройте MSYS (C:\MinGW\msys\1.0\msys.bat в моем случае) и в открывшейся командной строке перейдите в папку, где находится "Makefile".

Затем напишите простой:"сделать установку", и работа выполнена (по крайней мере, у меня это сработало).

PS:Я также скопировал-вставил файлы glew-1.10.0-win32\glew-1.10.0\bin elease \Win32 в свою папку System32, а в Eclipse CDT я добавил библиотеку "glew32" в опции компоновщика и добавил #include <GL/glew.h> до того, как #include <GL/glut.h>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top