diff options
author | lonkaars <loek@pipeframe.xyz> | 2024-05-16 17:20:59 +0200 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2024-05-16 17:20:59 +0200 |
commit | 7dd5ef4d6318582c4ece7ef74f6329c7b84de9df (patch) | |
tree | 08c0906cff58e4028faf88f9a2cb4140505bdd50 /main.c | |
parent | c0a4cd2aa8dce443a7d54232cada0ee57cdec463 (diff) |
fragment shader demo working :tada:
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -8,18 +8,19 @@ #include "hello_vert.h" #include "hello_frag.h" -void prepare_tri(GLuint* VBO, GLuint* VAO) { +void prepare_tri() { const float vertices[] = { - -0.5f, -0.5f, 0.0f, - 0.5f, -0.5f, 0.0f, - 0.0f, 0.5f, 0.0f, + -1, -1, 0, + 3, -1, 0, + -1, 3, 0, }; // initialize vertex {buffer,attribute} object buffers - glGenBuffers(1, VBO); - glBindBuffer(GL_ARRAY_BUFFER, *VBO); - glGenBuffers(1, VAO); - glBindVertexArray(*VAO); + GLuint VBO, VAO; + glGenBuffers(1, &VBO); + glBindBuffer(GL_ARRAY_BUFFER, VBO); + glGenVertexArrays(1, &VAO); + glBindVertexArray(VAO); // copy vertex data into VBO glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); @@ -27,6 +28,10 @@ void prepare_tri(GLuint* VBO, GLuint* VAO) { // set VAO pointers glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); glEnableVertexAttribArray(0); + + // draw (only) this triangle + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(VAO); } int main(int argc, char** argv) { @@ -49,8 +54,7 @@ int main(int argc, char** argv) { glewInit(); // create single triangle - GLuint VBO, VAO; - prepare_tri(&VBO, &VAO); + prepare_tri(); // prepare shaders GLuint shader = link_shaders( @@ -62,11 +66,7 @@ int main(int argc, char** argv) { while (!glfwWindowShouldClose(window)) { glfwPollEvents(); - glClearColor(1.f, 0.f, 1.f, 1.0f); - glClear(GL_COLOR_BUFFER_BIT); - glUseProgram(shader); - glBindVertexArray(VAO); glDrawArrays(GL_TRIANGLES, 0, 3); glfwSwapBuffers(window); |