调用glDrawArrays()时的OpenGL VBO Segfault

时间:2014-07-26 00:27:25

标签: c++ opengl codeblocks

当我尝试调用glDrawArrays时,我一直试图让VBO在我的最新项目和程序段错误中工作。

生成VBO

bool Renderer::init()
{
GLfloat verticies[]=
{0,0,
 0,32,
 32,32,
 32, 0};

glGenBuffersARB(1, &vboTest);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboTest);

glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verticies), verticies, GL_STATIC_DRAW);
}

然后渲染VBO

void Renderer::renderScene()
{
glClear(GL_COLOR_BUFFER_BIT);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboTest);

glEnableClientState(GL_VERTEX_ARRAY);

glVertexPointer(2, GL_FLOAT, 0, 0);

glDrawArrays(GL_QUADS, 0, 4);

glDisableClientState(GL_VERTEX_ARRAY);

glLoadIdentity();
SDL_GL_SwapWindow(window);
}

1 个答案:

答案 0 :(得分:0)

没关系,这是一个愚蠢的任意错误。我使用SDL_GL_GetProcAddress加载了函数,但是然后在渲染器类的标题中定义了GL_EXT_PROTOTYPES而不是重新设置函数原型。