Mac OSX 带有 LWJGL 的 El Capitan 上的 OpenGL 3.3

OpenGL 3.3 on Mac OSX El Capitan with LWJGL

我目前正在尝试在 2014 年中期在我的 Macbook Pro 上的 LWJGL 3 中创建一个 OpenGL 3.3 上下文。我初始化 window 的源代码如下所示:

if (!glfwInit()) {
    Logger.addError("GLFW", "init failed");
}

glfwDefaultWindowHints();

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);           
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_CORE_PROFILE, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

// glfwWindowHint(GLFW_SAMPLES, 2);

ID = glfwCreateWindow(width, height, title, 0, 0);
if (ID == 0) {
    Logger.addError("GLFW", "window creation failed");
}

遗憾的是 GLFW 无法为高于 2.1 的任何版本创建 window,版本 glGetString(GL_VERSION) returns 遗漏了 window 提示...
我通读了所有 "duplicate" 问题,但如您所见,我已经请求核心配置文件和向前兼容性。此外,我安装了 XCode 并拥有最新版本的操作系统。你们还有其他建议吗?或者我理解错了什么? 提前致谢...

请注意,LWJGL 3 afaik 中没有 "GLFW_OPENGL_PROFILE" 标志,因此我无法从官方 GLFW 入门页面 1:1 复制代码。将 "GLFW_OPENGL_CORE_PROFILE" 标志设置为 true 在 windows 上起作用,但因此这不可能是制造麻烦的错误...

您设置核心配置文件的方式 window 提示不正确。而是使用:

glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

来自GLFW documentation

GLFW_OPENGL_PROFILE specifies which OpenGL profile to create the context for. Possible values are one of GLFW_OPENGL_CORE_PROFILE or GLFW_OPENGL_COMPAT_PROFILE, or GLFW_OPENGL_ANY_PROFILE to not request a specific profile. If requesting an OpenGL version below 3.2, GLFW_OPENGL_ANY_PROFILE must be used. If OpenGL ES is requested, this hint is ignored.