Java Mac上的LWJGL黑屏

Java Mac上的LWJGL黑屏,java,macos,opengl,glsl,lwjgl,Java,Macos,Opengl,Glsl,Lwjgl,我无法使用LWJGL 2.9.1在MacOSX Mavericks上的屏幕上绘制任何内容。我制作了一个使用OpenGL 3.3版的窗口,我正在尝试为我的着色器使用#330版。我得到的只是一个黑屏 我正在使用vbo和ibo绘制一些东西: public void draw() { glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glEnableVertexAttribArray(2); glBi

我无法使用LWJGL 2.9.1在MacOSX Mavericks上的屏幕上绘制任何内容。我制作了一个使用OpenGL 3.3版的窗口,我正在尝试为我的着色器使用#330版。我得到的只是一个黑屏

我正在使用vbo和ibo绘制一些东西:

public void draw()
{
    glEnableVertexAttribArray(0);
    glEnableVertexAttribArray(1);
    glEnableVertexAttribArray(2);

    glBindBuffer(GL_ARRAY_BUFFER, vbo);
    glVertexAttribPointer(0, 3, GL_FLOAT, false, 8 * 4, 0);
    glVertexAttribPointer(1, 2, GL_FLOAT, false, 8 * 4, 12);
    glVertexAttribPointer(2, 3, GL_FLOAT, false, 8 * 4, 20);

    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
    glDrawElements(GL_TRIANGLES, indices.length, GL_UNSIGNED_INT, 0);

    glDisableVertexAttribArray(0);
    glDisableVertexAttribArray(1);
    glDisableVertexAttribArray(2);
}
此方法在每个渲染周期调用,其中vbo包含一个顶点数组,ibo包含一个索引数组,顶点属性0、1和2分别是位置、texCoord和法线。然而,我不知道这会有多大帮助,因为这只是我代码的一小部分

主要的问题是,我得到了一个黑屏,不知道为什么。我没有收到任何错误,我确实设置了使用OpenGL 3.3版的上下文。最让我困惑的是,完全相同的代码在Windows7上运行得非常好,在同一台计算机上,我正在绘制的网格显示在屏幕上,正如预期的那样。这一定是Mac电脑的问题,否则我的设置不正确


如果您需要我发布我的顶点和片段着色器或任何其他代码片段,我将很乐意将它们张贴出来。

对于Core 3.3,您肯定做得不对。您应该使用VAO,而不是在每次draw调用时设置这些状态,然后在draw调用后禁用它们。事实上,如果在核心概要文件上下文中没有至少一些VAO绑定,那么
glDrawerElements(…)
是一个无效的操作。@AndonM.Coleman谢谢!我现在用的是VAO,效果很好。但是,如果GLDraweElements是一个无效的操作,为什么它不在Windows 7上使用VAOs就可以工作?可能是因为您在Windows中没有核心配置文件。