Проблемы с версией OpenGL glew.h

Я разрабатываю приложение OpenGL, и мне нужно использовать библиотеку glew. Я использую Visual Studio C++ 2008 Express.

Я скомпилировал программу, используя gl.h, glu.h и glut.h, и она делает то, что должна делать. Но после включения glew.h он по-прежнему отлично компилируется, но когда я пытаюсь:

glewInit();
if (glewIsSupported("GL_VERSIONglewIsSupported("GL_VERSION_1_3")0"))
    printf("Ready for OpenGL 2.0\n");
else {
    printf("OpenGL 2.0 not supported\n");
}

Он продолжает печатать:

«OpenGL 2.0 не поддерживается».

Я попытался изменить его на glewIsSupported("GL_VERSION_1_3") или даже glewIsSupported("GL_VERSION_1_0"), и он по-прежнему возвращает false, что означает, что он вообще не поддерживает версию OpenGL.

У меня есть Radeon HD 5750, поэтому он должен поддерживать OpenGL 3.1 и некоторые функции 3.2. Я знаю, что все драйверы устройств установлены правильно, так как мне удалось запустить все программы Radeon sdk, предоставленные ATI.

Я также установил Opengl Extensions Viewer 3.15, и он говорит, что OpenGL Version 3.1 Ati Driver 6.14.10.9116. Я устал от всех GLEW_VERSION_1_1, GLEW_VERSION_1_2, GLEW_VERSION_1_3, GLEW_VERSION_2_0, GLEW_VERSION_2_1, GLEW_VERSION_3_0, и все они возвращают false.

Любые другие предложения? Я даже пробовал GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader, и это также возвращает false.


person user237141    schedule 30.12.2009    source источник


Ответы (4)


glewIsSupported предназначен для проверки и проверки поддержки определенных функций. Вы хотите что-то более похожее на...

if (GLEW_VERSION_1_3)
{
    /* Yay! OpenGL 1.3 is supported! */
}
person Pace    schedule 30.12.2009
comment
Как сказал ОП, это не работает, независимо от того, как вы его используете. Для этого всегда установлено значение false, у меня такая же проблема с моим OpenGL в Linux. - person Soroosh Bateni; 12.02.2014
comment
Я полагаю, что ОП передавал строку функции glewIsSupported. Я хотел сказать, что это не строка, а глобальная переменная в файлах заголовков glew. Какую версию GLEW вы используете? - person Pace; 12.02.2014

может отсутствовать необходимая инициализация. Я сталкиваюсь с тем же вопросом. И вот как я решаю вопрос: нужно включить glCreateWindow() впереди. Включите эту функцию и повторите попытку.

person user2451497    schedule 04.06.2013

Во-первых, вы должны проверить, правильно ли инициализировался glew:

 if(glewInit() != GLEW_OK)
 { // something is wrong };

Во-вторых, вам нужно создать контекст перед вызовом glewInit()

В-третьих, вы также можете попробовать:

  glewExperimental=true;

Прежде чем позвонить glewInit()

person Sup3rlum    schedule 02.07.2015

Я столкнулся с той же проблемой при запуске программы через Windows RDP, затем я заметил, что моя видеокарта может работать неправильно при использовании RDP, поэтому я попробовал teamviewer< /strong> вместо этого и glewinfo.exe, и моя программа начинают нормально работать.

Проблема ОП может быть решена надолго, просто для информации других.

person zhangxaochen    schedule 30.03.2016