以下是错误消息:
while (GLFW.glfwWindowShouldClose(window) != true) {
GLFW.glfwPollEvents();
GL11.glClearColor(0f, 0f, 0f, 0f);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(-0.5f, 0.5f);
GL11.glVertex2f(0.5f, 0.5f);
GL11.glVertex2f(0.5f, -0.5f);
GL11.glVertex2f(-0.5f, -0.5f);
GL11.glEnd();
GLFW.glfwSwapBuffers(window);
}
我在macOS 10.12并使用Java 8。
为什么会导致seg-fault,我该如何解决?
代码:
{{1}}
答案 0 :(得分:1)
糟糕。解决了!我忘了添加GL.createCapabilities();
答案 1 :(得分:1)
我看到你在那里已经回答了你的问题,但我对GL.createCapabilities()的确切内容有了更深入的了解。
一旦您使用GLFW的glfwMakeContextCurrent()创建了上下文,我们的窗口只有一个上下文,但仍然缺少某些内容。
GL.createCapabilities()做3件事;加载本机库,创建GLCapabilities的实例(可用于检查有关上下文的很多内容,例如,兼容的扩展)并创建一些线程来管理所述GLCapabilities。
(虽然我没有经过测试,但我认为GL.create()也会解决你的问题。)
显然,您遇到的问题是图书馆遗失了,这就是错误的原因。没关系,我也得到了同样的错误。只需确保在创建上下文(并且是当前的)之后但在任何OpenGL调用之前调用GL.createCapabilities()。
您可以在此处阅读更多内容:https://javadoc.lwjgl.org/org/lwjgl/opengl/GL.html