GLFW返回错误的GL_VERSION

时间:2013-11-16 18:41:45

标签: c++ opengl version glfw

在GLFW中我通过以下方式设置OpenGL上下文版本:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);

但是,当我在glfwMakeContextCurrent(window);glewInit();后通过:

将其打印到控制台时
Log::brightWhite("OpenGL version:\t");
Log::white("%s\n", glGetString(GL_VERSION));
Log::brightWhite("GLSL version:\t");
Log::white("%s\n", glGetString(GL_SHADING_LANGUAGE_VERSION));

我得到以下内容:

enter image description here

为什么它是4.3而不是2.0?

1 个答案:

答案 0 :(得分:3)

因为实现可以免费提供它喜欢的任何版本,只要它支持核心GL 2.0中的所有内容。您通常会获得最高支持的 compatibilitybilty 配置文件版本的实现。这没什么不对。

请注意,在更高版本中添加了向前和向后兼容的上下文和配置文件,因此在请求1.x / 2.x上下文时,这是您应该进行的操作。请注意,在OSX上,GL 3.X仅在核心配置文件中支持以上内容,因此您很可能最终得到2.1上下文。