我想将我使用的OpenGL版本从3.2更改为3.3,以便我可以实现实例化渲染。目前我的OpenGL初始化代码如下所示。
ContextAttribs attribs = new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true);
所以我把它改成了......
ContextAttribs attribs = new ContextAttribs(3, 3).withForwardCompatible(true).withProfileCore(true);
唯一的区别是我放在ContextAttribs()中的OpenGL版本。
我在2013年MacBook Air上运行此应用程序,根据https://support.apple.com/en-us/HT202823
,OpenGL功能最高可达4.1创建显示后,我放置了以下代码
System.out.println("OpenGL version " + GL11.glGetString(GL11.GL_VERSION));
这允许我检查我正在使用的OpenGL版本。这是棘手的部分。当我把ContextAttribs(3,2)打印出来时
OpenGL 4.1版INTEL-10.12.13
但是,如果我将其更改为ContextAttribs(3,3),我的应用程序崩溃并打印出来
OpenGL版本2.1 INTEL-10.12.13
我不知道如何解决这个问题,如果有人可以,我会非常感激。感谢您阅读本文。
答案 0 :(得分:1)
查看LWJGL ContextAttribs类的doc。它声明:
但是,为了在MacOS X 10.7或更高版本上启用GL 3.2上下文,必须将此类的实例传递给LWJGL。唯一有效的配置是ContextAttribs(3,2,CONTEXT_CORE_PROFILE_BIT_ARB),其他任何内容都将被忽略。