Finish hello triangle
This commit is contained in:
parent
8326b110df
commit
32228da922
@ -17,5 +17,6 @@ For faster compilation, compile glad;
|
|||||||
gcc -Ilibs/glad/include/ -c libs/glad/src/glad.c
|
gcc -Ilibs/glad/include/ -c libs/glad/src/glad.c
|
||||||
#+end_src
|
#+end_src
|
||||||
* Terms
|
* Terms
|
||||||
VBO - vertex buffer objects
|
VBO - Vertex Buffer Objects
|
||||||
VAO - vertex array object
|
VAO - Vertex Array Object
|
||||||
|
EBO - Element Buffer Object
|
||||||
|
23
main.c
23
main.c
@ -110,17 +110,25 @@ int main(void) {
|
|||||||
glDeleteShader(fragmentShader);
|
glDeleteShader(fragmentShader);
|
||||||
|
|
||||||
float vertices[] = {
|
float vertices[] = {
|
||||||
-0.5f, -0.5f, 0.0f,
|
0.5f, 0.5f, 0.0f, // top right
|
||||||
0.5f, -0.5f, 0.0f,
|
0.5f, -0.5f, 0.0f, // bottom right
|
||||||
0.0f, 0.5f, 0.0f
|
-0.5f, -0.5f, 0.0f, // bottom left
|
||||||
};
|
-0.5f, 0.5f, 0.0f // top left
|
||||||
|
};
|
||||||
|
unsigned int indices[] = { // note that we start from 0!
|
||||||
|
0, 1, 3, // first triangle
|
||||||
|
1, 2, 3 // second triangle
|
||||||
|
};
|
||||||
|
|
||||||
unsigned int VBO, VAO;
|
unsigned int VBO, VAO, EBO;
|
||||||
glGenVertexArrays(1, &VAO);
|
glGenVertexArrays(1, &VAO);
|
||||||
|
glGenBuffers(1, &EBO);
|
||||||
glGenBuffers(1, &VBO);
|
glGenBuffers(1, &VBO);
|
||||||
glBindVertexArray(VAO);
|
glBindVertexArray(VAO);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, 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, 3 * sizeof(float), (void*)0);
|
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
|
||||||
@ -136,7 +144,10 @@ int main(void) {
|
|||||||
|
|
||||||
glUseProgram(shaderProgram);
|
glUseProgram(shaderProgram);
|
||||||
glBindVertexArray(VAO);
|
glBindVertexArray(VAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 3);
|
// glDrawArrays(GL_TRIANGLES, 0, 3);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||||
|
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||||
|
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
|
||||||
|
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user