glGenBuffers 不设置缓冲区
Posted
技术标签:
【中文标题】glGenBuffers 不设置缓冲区【英文标题】:glGenBuffers does not set buffer 【发布时间】:2014-08-24 12:34:33 【问题描述】: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。
【问题讨论】:
【参考方案1】:你需要一个当前的 opengl 上下文来调用任何 gl 函数。您可以使用 glx 或 egl 创建上下文并使其成为当前的。
【讨论】:
【参考方案2】:您没有 GL 上下文,所以所有的赌注都没有了。在没有当前调用线程的上下文的情况下调用任何 GL 函数是完全未定义的行为。
【讨论】:
以上是关于glGenBuffers 不设置缓冲区的主要内容,如果未能解决你的问题,请参考以下文章