【发布时间】:2011-03-14 21:08:45
【问题描述】:
我已按照此处的基本说明进行操作:
我唯一调整的是将上下文创建为 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 上下文创建成功,但是却无法获取版本信息?
【问题讨论】:
-
上下文创建不返回布尔值。它返回一个上下文句柄。你确定成功了吗?
-
是的,我确定它成功了,调用成功返回了一个 HGLRC 结构。
-
上下文是否也被激活了?创建上下文不会自动激活它 → wglMakeCurrent