glGenBuffers没有设置缓冲区

时间:2014-08-24 12:34:33

标签: c++ c opengl amazon-web-services amazon-ec2

是否有任何理由导致glGenBuffers(1, &bufferID)未成功将ID分配到bufferID

#define GL_GLEXT_PROTOTYPES 1
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
#include <stdio.h>

int main (void) {
    GLuint bufferID = 0;
    glGenBuffers( 1, &bufferID );
    printf("bufferID: %d\n", bufferID);
    return 0;
}

编译为

g++ -o glTest glTest.c -lGL -lGLU

输出:

arrID: 0

我在AWS EC2 g2.2xlarge实例上使用Ubuntu 14.04。

2 个答案:

答案 0 :(得分:2)

您需要一个当前的opengl上下文来调用任何gl函数。您可以使用glx或egl创建上下文并使其成为当前。

答案 1 :(得分:2)

你没有GL背景,所以所有赌注都已关闭。调用任何GL函数而不向调用线程提供上下文当前是完全未定义的行为。