GLuint VBO, VA0, EBO;
{
GLfloat pts[] =
{
0.5f, 0.5f, 0.0f, 1, 0, 0,
0.5f, -0.5f, 0.0f, 0, 1, 0,
-0.5f, -0.5f, 0.0f, 0, 0, 1,
-0.5f, 0.5f, 0.0f, 1, 1, 0
};
GLuint indices[] =
{
0, 1, 3,
1, 2, 3
};
glGenVertexArrays(1, &VA0);
glGenBuffers(1, &VBO);
glGenBuffers(1, &EBO);
glBindVertexArray(VA0);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(pts), pts, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (void*)0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (void*) (3 * sizeof(GLfloat)));
glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
}
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
glClearColor(color1, color2, color3, 1);
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(VA0);
shader->Use();
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
glfwSwapBuffers(window);
}