【问题标题】:Why are there no buffers in <gl/GL.h>为什么 <gl/GL.h> 中没有缓冲区
【发布时间】:2020-09-22 21:53:18
【问题描述】:

下面的教程向我展示了以下代码:

...

void update() {
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_TRIANGLES);

    glVertex4f(0, 0, 0, 0);
    glVertex4f(1, 0, 0, 0);
    glVertex4f(0, 1, 0, 0);

    glEnd();

    glutSwapBuffers();
}

...

它工作得很好,但我从 OpenTK 的教程中知道,Core 配置文件要好得多,因为它更加灵活和快速。

所以我遵循了另一个使用缓冲区的教程。它显示类似于以下代码:

float data[] = {
    0, 0, 0,
    1, 0, 0,
    0, 1, 0
}
GLuint vao;

void update () {
    ...
}

void main() {
    // glut stuff

    glGenVertexArrays(1, &vao);
    glBindVertexArray(vao);
}
...

问题在于&lt;gl/GL.h&gt;(出于某种原因)没有任何与缓冲区相关的函数定义。我真的不知道为什么会这样,所以我必须下载另一个我不知道的库,还是我错过了什么?

我正在使用 Visual Studio 和默认头文件(如果这很重要的话)。

【问题讨论】:

标签: c++ opengl


【解决方案1】:

感谢 t.niese 和 Rabbid76 这么快就解决了我的问题!

这是他们的解决方案:


t.niese

在许多系统上,默认的 OpenGL 头文件只为旧版本 (When do I need to use an OpenGL function loader?) 提供 OpenGL 功能。你需要加载并指向函数。为避免手动执行此操作,可以使用 gladglew 等加载程序

兔子76

您必须使用像 GLEWGLAD 这样的 OpenGL 加载程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多