【问题标题】:OpenGL Segfaults on glGenVertexArraysglGenVertexArrays 上的 OpenGL 段错误
【发布时间】: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


【解决方案1】:

我忘记设置 OpenGL 上下文。现在都修好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多