glGenVertexArrays 上的 OpenGL 段错误 [英] OpenGL Segfaults on glGenVertexArrays

查看:28
本文介绍了glGenVertexArrays 上的 OpenGL 段错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

OpenGL 或 SDL 在到达类中的第一个语句时会出现段错误.我不知道是什么原因造成的.

OpenGL or SDL segfaults when it reaches the very first statement in the class. I have no idea what is causing it.

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);

    }
}

推荐答案

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

I forgot to setup an OpenGL context. All fixed now.

这篇关于glGenVertexArrays 上的 OpenGL 段错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆