在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));
我得到以下内容:
为什么它是4.3而不是2.0?
答案 0 :(得分:3)
因为实现可以免费提供它喜欢的任何版本,只要它支持核心GL 2.0中的所有内容。您通常会获得最高支持的 compatibilitybilty 配置文件版本的实现。这没什么不对。
请注意,在更高版本中添加了向前和向后兼容的上下文和配置文件,因此在请求1.x / 2.x上下文时,这是您应该进行的操作。请注意,在OSX上,GL 3.X仅在核心配置文件中支持以上内容,因此您很可能最终得到2.1上下文。