我目前正试图在2014年中期的Macbook Pro上用LWJGL 3创建一个OpenGL 3.3上下文。我初始化窗口的源代码如下:
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的版本创建窗口,当省略窗口提示时,版本glGetString(GL_VERSION)
会返回...
我仔细阅读了所有"复制品#34;问题,但正如您所见,我已经请求核心配置文件和向前兼容性。此外,我安装了XCode并拥有最新版本的操作系统。你们有任何其他建议或者我理解任何可怕的错误吗?
提前谢谢......
请注意,LWJGL 3中没有"GLFW_OPENGL_PROFILE"
标志,因此我无法从官方GLFW入门页1:1复制代码。将"GLFW_OPENGL_CORE_PROFILE"
标志设置为true可以在Windows上工作,因此这不能解决错误......
答案 0 :(得分:4)
您设置核心配置文件窗口提示的方式不正确。而是使用:
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFW_OPENGL_PROFILE
指定要为其创建上下文的OpenGL配置文件。可能的值是GLFW_OPENGL_CORE_PROFILE
或GLFW_OPENGL_COMPAT_PROFILE
之一,或GLFW_OPENGL_ANY_PROFILE
,以便不请求特定的配置文件。如果请求的OpenGL版本低于3.2,则必须使用GLFW_OPENGL_ANY_PROFILE
。如果请求OpenGL ES,则忽略此提示。