Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Загрузите GLEW и разархивируйте его.

Добавьте путь GLEW bin к переменной среды Windows PATH. Кроме того, вы можете разместить glew32.dll в каталоге, где Windows загружает свои DLL.

Добавьте путь GLEW include в список каталогов, содержащий список каталогов.

Добавьте путь GLEW lib к списку каталогов библиотеки компилятора.

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

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

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

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

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

Проверьте, доступны ли расширения (ы), которые вы хотите использовать, через GLEW. Вы делаете это, проверяя логическую переменную с именем GLEW_your_extension_name, которая отображается GLEW.

Пример:

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

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

Ответ 2

Лично я бы не использовал команду 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
}

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

Ответ 3

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

Загрузите MSYS (для MinGW) и повторите попытку, чтобы MinGW был установлен правильно (правильно настроенная переменная PATH): 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". Откройте его и с помощью текстового редактора (Notepad должен работать нормально) найдите строку, содержащую "GLEW_DEST", и замените ее чем-то вроде "GLEW_DEST? = C:/MinGW"

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

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

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