Невозможно получить информацию о версии из OpenGL 3.2 / 3.3 - PullRequest
2 голосов
/ 15 марта 2011

Я следовал основным инструкциям здесь:

http://www.opengl.org/wiki/Tutorial:_OpenGL_3.1_The_First_Triangle_%28C%2B%2B/Win%29#Rendering_Context_Creation

Единственное, что я настроил, - это создание контекста 3.2 или 3.3:

const int attributes[] =
{
    WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
    WGL_CONTEXT_MINOR_VERSION_ARB, 2,
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
    0
};

И затем после создания контекста (который возвращает TRUE для успеха) я проверяю версию с помощью:

// Double check the version (old way)
const GLubyte *const pszGLVersion = glGetString(GL_VERSION);

// Double check the version (new way)
GLint glVersion[2];
glGetIntegerv(GL_MAJOR_VERSION, &glVersion[0]);
glGetIntegerv(GL_MINOR_VERSION, &glVersion[1]);

Однако pszGLVersion имеет значение NULL, а glVersion [0] и glVersion [1] оба неинициализированы!

Почему создание контекста OpenGL 3.2 и 3.3 было успешным, но при этом не удалось получить информацию о версии?

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Вы сделали контекст текущим?Вы заметите, что glGetString не принимает параметр контекста, он работает в текущем контексте.Его нельзя использовать до тех пор, пока после вызова wglMakeCurrent вновь созданный контекст не станет текущим по умолчанию.

0 голосов
/ 26 января 2013

Я думаю, что причина, по которой я не могу получить информацию о версии, заключается в том, что моя видеокарта не поддерживает 3.2 или 3.3.

...