1
我有問題讓OpenGL工作,基本上我得到了替代的黑色和灰色屏幕。我使用固定功能管道(glBegin(),glEnd()和glTexCoord)工作正常......)我認爲我做了一些非常錯誤的事情,對於這個東西來說很新。任何幫助,將不勝感激。讓VBOs工作
struct Quad
{
float x0, y0, z0; // top left corner
float x1, y1, z1; // top right corner
float x2, y2, z2; // bottom left corner
float x3, y3, z3; // bottom right corner
float s0, t0;
float s1, t1;
float s2, t2;
float s3, t3;
char r, g, b, a; // tint
float depth; // depth value of the Quad
};
void draw{
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
// Note: glVertexPointer is deprecated, change to glVertexAttribPointer
glVertexPointer(3, GL_FLOAT, sizeof(Quad), &(vertexBuffer_[0].x0));
glTexCoordPointer(2, GL_FLOAT, sizeof(Quad), &(vertexBuffer_[0].s0));
glBindBuffer(GL_ARRAY_BUFFER, VBOs_[activeVBO_]);
glBufferData(GL_ARRAY_BUFFER, vertexBuffer_.size() * sizeof(Quad), &(vertexBuffer_[0]), GL_STATIC_DRAW);
glDrawArrays(GL_QUADS, 0, vertexBuffer_.size());
glBindBuffer(GL_ARRAY_BUFFER, 0);
SDL_GL_SwapBuffers();
activeVBO_ = (++activeVBO_)%NUM_VBO;
glError();
}
設法解決的一些問題 - 除了什麼genpfault指出的那樣,我也錯失接聽電話以清除(),因此幀緩衝沒有被重置。 – aCuria