我按照这里的基本说明进行操作:
我唯一调整过的是创建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上下文成功,但后来无法获取版本信息?
答案 0 :(得分:2)
您是否将上下文设为最新?您会注意到glGetString
不接受上下文参数,它适用于当前上下文。在调用wglMakeCurrent
之后才能使用它,默认情况下新创建的上下文不是最新的。
答案 1 :(得分:0)
我认为我无法获取版本信息的原因是因为我的显卡不支持3.2或3.3。