From d79f49535e3563ae89d59b370a7d54e5212a2c43 Mon Sep 17 00:00:00 2001 From: k Date: Sun, 8 Dec 2024 02:05:17 -0500 Subject: [PATCH] hello rectangele --- headers/shapes.h | 18 ++++++++++++++++-- src/main.cpp | 12 ++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/headers/shapes.h b/headers/shapes.h index b8cc635..77b7c09 100644 --- a/headers/shapes.h +++ b/headers/shapes.h @@ -1,16 +1,30 @@ float tri_vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f}; +float sqr_vertices[] = { + 0.5f, 0.5f, 0.0f, /*top R*/ + 0.5f, -0.5f, 0.0f, /*bottom R*/ + -0.5f, -0.5f, 0.0f, /*bottom L*/ + -0.5f, 0.5f, 0.0f/*top R*/ +}; + +unsigned int sqr_indices[] = { + 0, 1, 3,/*tl triangle*/ + 1, 2, 3 /*br triangle*/ +}; const char *basicVertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" + "out vec3 color;\n" "void main()\n" "{\n" + " color = aPos;" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" "}\0"; const char *basicFragmentShaderSource = "#version 330 core\n" - "out vec4 FragColor;\n" + "out vec3 FragColor;\n" + "in vec3 color;" "void main()\n" "{\n" - " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" + " FragColor = (color/2+.5)*1.5;\n" "}\n"; diff --git a/src/main.cpp b/src/main.cpp index d1a4991..763d2b7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -32,19 +32,22 @@ int main(void) { glViewport(0, 0, 800, 600); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); - unsigned int VBO,VAO; + unsigned int VBO,VAO,EBO; glGenVertexArrays(1, &VAO); glBindVertexArray(VAO); glGenBuffers(1, &VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(tri_vertices), tri_vertices, + glBufferData(GL_ARRAY_BUFFER, sizeof(sqr_vertices), sqr_vertices, GL_STATIC_DRAW); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void *)0); glEnableVertexAttribArray(0); + glGenBuffers(1, &EBO); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(sqr_indices), sqr_indices, GL_STATIC_DRAW); + unsigned int shaderProgram = shaderProgramCMPL(basicVertexShaderSource, basicFragmentShaderSource); glUseProgram(shaderProgram); @@ -57,7 +60,8 @@ int main(void) { glUseProgram(shaderProgram); glBindVertexArray(VAO); - glDrawArrays(GL_TRIANGLES, 0, 3); + + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); glfwSwapBuffers(window); glfwPollEvents();