无法从OpenGL 3.2 / 3.3中检索版本信息

时间:2011-03-14 21:08:45

标签: c opengl opengl-3

我按照这里的基本说明进行操作:

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 个答案:

答案 0 :(得分:2)

您是否将上下文设为最新?您会注意到glGetString不接受上下文参数,它适用于当前上下文。在调用wglMakeCurrent之后才能使用它,默认情况下新创建的上下文不是最新的。

答案 1 :(得分:0)

我认为我无法获取版本信息的原因是因为我的显卡不支持3.2或3.3。