每次我尝试运行LWJGL应用程序时,JVM都会崩溃。这似乎与向我的VBO添加多个三角形有关。
这是我的初始化代码
float[] vertices = {
-0.5f, 0.5f, 0f,
-0.5f, -0.5f, 0f,
0.5f, -0.5f, 0f,
0.5f, -0.5f, 0f,
0.5f, 0.5f, 0f,
-0.5f, 0.5f, 0f
};
vertexCount = vertices.length / 3;
FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
verticesBuffer.put(vertices);
verticesBuffer.flip();
vboId = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vboId);
glBufferData(GL_ARRAY_BUFFER, verticesBuffer, GL_STATIC_DRAW);
glVertexPointer(vertexCount, GL_FLOAT, 0, 0L);
glBindBuffer(GL_ARRAY_BUFFER, 0);
这是我的渲染代码
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, vertexCount);
glDisableClientState(GL_VERTEX_ARRAY);
当我删除顶点数组中的最后9个值时,它可以正常工作,但如果我保留这些值,或者添加更多,JVM将崩溃。
答案 0 :(得分:2)
glVertexPointer
的第一个参数是每个顶点的坐标数,而不是顶点数。所以改变这一行:
glVertexPointer(3, GL_FLOAT, 0, 0L);