Сведения о вопросе

LiKIY

02:46, 29th August, 2020

Теги

opengl   glew    

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

Просмотров: 617   Ответов: 3

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



  Сведения об ответе

9090

21:29, 9th August, 2020

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

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

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

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

Скачайте GLEW и распакуйте его.

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

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

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

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

#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,


  Сведения об ответе

repe

21:29, 12th August, 2020

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

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

т.е.:

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 учебников. Попробуйте, например, вот это .


  Сведения об ответе

appple

22:59, 24th August, 2020

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

Теперь вы готовы идти, откройте MSYS (C:\MinGW\msys\1.0\msys.bat в моем случае) и в открывшемся shell перейдите в папку, где находится "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>


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться