LWJGL不会给我一个支持4.1的OpenGL上下文

时间:2014-11-07 18:19:36

标签: macos opengl lwjgl

我正在使用LWJGL在OS X上制作游戏,而且我已经读过OS X不支持兼容性配置文件,默认情况下,我创建的任何上下文都只支持2.1版或更早版本。我想使用更现代的东西,所以我试图让4.1上下文工作(4.1是我的电脑支持的最新版本,据Apple称)。

据我所知,在LWJGL中请求某个版本的OpenGL的方法是将ContextAttribs(major_version, minor_version)传递给Display.create(),如下所示:

  Display.create(new PixelFormat(), new ContextAttribs(4, 1));

我决定通过在我的顶点着色器中放置一个#version 410语句来测试这是有效的,但是,当我查询"着色器信息日志"我收到错误消息:

ERROR: 0:1: '' :  version '410' is not supported

此时我真的不知道该怎么做。我知道我的显卡支持OpenGL 4.1,我要求LWJGL提供4.1上下文,但显然它不会给我一个。还有什么需要做的来支持这个吗?

1 个答案:

答案 0 :(得分:4)

显然,生成OpenGL 4.1上下文的必要LWJGL调用如下所示。

Display.create(new PixelFormat(), new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true));

注意: 必须ContextAttribs(3, 2) (4, 1)。我认为这是由于Apple的OpenGL支持有些奇怪。 显然他们并不真正支持OpenGL 4.1,他们支持3.2与4.1的向前兼容性。愚蠢,我知道。 编辑: 这不完全正确。有关详细信息,请参阅注释。

我发现此页面有助于解决所有问题:LWJGL Version Selection