当OpenGL或SDL到达类中的第一个语句时,会发生段错误。我不知道是什么原因造成的。
class RenderEngine {
GLuint vertexArrayId;
GLfloat[] vertexBufferData = [
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f,
0.0f, 1.0f, 0.0f
];
GLuint vertexBufferId;
public this() {
glGenVertexArrays(1, &vertexArrayId); // SEGMENTATION FAULT / RETURN -11
glBindVertexArray(vertexArrayId);
glGenBuffers(1, &vertexBufferId);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferId);
glBufferData(GL_ARRAY_BUFFER, vertexBufferData.length * GLfloat.sizeof, vertexBufferData.ptr, GL_STATIC_DRAW);
}
public void render() {
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferId);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, cast(void*) 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(0);
}
}
答案 0 :(得分:0)
我忘了设置OpenGL上下文。全部修复了。