我在这里发布是因为我是LWJGL的新手,并且遇到了一些问题。根据Apple的说法,我使用的计算机应该可以在OpenGL 4.1上使用,但是当我要求版本时,它会显示OpenGL: 2.1 INTEL-10.6.31,然后由于尝试使用仅在OpenGL 3.0中可用的功能而出现错误。

这是Apple's page的链接,指出我使用的计算机(2014 MacBook Air)应具有OpenGL 4.1

我用来查找版本的代码是:

GL.createCapabilities();
System.out.println("OpenGL: " + glGetString(GL_VERSION));


希望有人知道这里发生了什么。

最佳答案

好的,所以我做了更多的挖掘工作,发现OSx默认使用GL 2.1,即使它安装了更新的软件也是如此。看起来有点傻,但是它是如何工作的。

如果你们中的任何一个人也遇到了这个问题,我发现的解决方案是在创建窗口之前放入这些代码行。我不确定您是否必须这样做,但是这对我有用:

glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);


希望这可以帮助其他人解决这个问题。

Link to where I found this solution

如果有人有更好的解决方案,或者对它的工作方式有任何澄清,我很想听听您的意见。

干杯!

07-25 20:14