Hello, i'm having issue with VBO and can't understand how to solve this problem, can't find answer in Google too.
I wrote the VBO, applied it and nothing shows, can't understand what's wrong if even I copy code from Google it doesn't shows anything. No errors, nothing. Here's render code:
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, uiVBO[0]);
glVertexAttribPointer(
0, // The attribute we want to configure
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
0 // array buffer offset
);
glDrawArrays(GL_TRIANGLES, 0, 3);
glBindBuffer(GL_ARRAY_BUFFER, uiVBO[1]);
glVertexAttribPointer(
0, // The attribute we want to configure
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
0 // array buffer offset
);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Test");
glewInit();
// Setup triangle vertices
fTriangle[0] = -0.4f; fTriangle[1] = 0.1f; fTriangle[2] = 0.0f;
fTriangle[3] = 0.4f; fTriangle[4] = 0.1f; fTriangle[5] = 0.0f;
fTriangle[6] = 0.0f; fTriangle[7] = 0.7f; fTriangle[8] = 0.0f;
// Setup quad vertices
fQuad[0] = -0.2f; fQuad[1] = -0.1f; fQuad[2] = 0.0f;
fQuad[3] = -0.2f; fQuad[4] = -0.6f; fQuad[5] = 0.0f;
fQuad[6] = 0.2f; fQuad[7] = -0.1f; fQuad[8] = 0.0f;
fQuad[9] = 0.2f; fQuad[10] = -0.6f; fQuad[11] = 0.0f;
glGenBuffers(2, uiVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, uiVBO[0]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 9*sizeof(float), fTriangle, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, uiVBO[1]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 12*sizeof(float), fQuad, GL_STATIC_DRAW);
glutReshapeFunc(resize);
glutDisplayFunc(display);
glutKeyboardFunc(key);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutIdleFunc(idle);
glClearColor(102.0/255.0, 255.0/255.0, 255.0/255.0, 1.0);
glutMainLoop();
return EXIT_SUCCESS;
}