glfwGetGLVersion()返回2.1上的OS X Lion
问题描述:
我想在Lion上设置一个OpenGL 3.2上下文。我得到这个代码的窗口设置:glfwGetGLVersion()返回2.1上的OS X Lion
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
if (!glfwInit())
return -1;
if (!glfwOpenWindow(640, 480, 8, 8, 8, 0, 0, 0, GLFW_WINDOW))
return -1;
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
// Get OpenGL details
int major, minor, rev;
glfwGetGLVersion(&major, &minor, &rev);
std::cout << "GL Version: " << major << "." << minor << "." << rev << std::endl;
的GL版本出来为2.1,即使我运行OS X Lion中和的AMD Radeon 6750M,这显然支持3.2。另外,我跑了C代码here这个返回3.2的位。我正在使用GLFW 2.7.8。有人知道这里发生了什么吗?
答
事实证明,我需要调用glfwInit()
调用之前glfwOpenWindowHint
:
if (!glfwInit())
return -1;
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
if (!glfwOpenWindow(500, 500, 8, 8, 8, 0, 0, 0, GLFW_WINDOW))
return -1;
'GLFW_OPENGL_FORWARD_COMPAT,GL_TRUE'请停止这样做。 –
您运行此的PC是否具有集成GPU以及专用GPU?如果确实如此,您可能需要明确告诉AMD驱动程序使用您的主卡。 –
@NicolBolas为什么他不应该将GLFW_OPENGL_FORWARD_COMPAT设置为GL_TRUE? – Grimmy