【发布时间】:2014-04-02 20:21:31
【问题描述】:
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);
}
}
【问题讨论】:
-
您是在使用废弃的绑定还是只是将函数调用为普通的旧 extern(C)?
-
@adamd.ruppe 我正在使用废弃的。
标签: segmentation-fault d opengl-3 glfw