From 2a313fbc517d51cd6d1c2ab216e9531473354bf4 Mon Sep 17 00:00:00 2001 From: Amy Retzerau Date: Mon, 25 Aug 2025 11:32:01 +0200 Subject: [PATCH] feat: added FullscreenQuad --- FullScreenQuad.hpp | 33 +++++++++++++++++++++++++++++++++ main.cpp | 6 ++++++ 2 files changed, 39 insertions(+) create mode 100644 FullScreenQuad.hpp diff --git a/FullScreenQuad.hpp b/FullScreenQuad.hpp new file mode 100644 index 0000000..a56fc81 --- /dev/null +++ b/FullScreenQuad.hpp @@ -0,0 +1,33 @@ +#include + + +class FullScreenQuad { +private: + unsigned int vao; +public: + FullScreenQuad(); + int getVAO() { return vao;} +}; + +FullScreenQuad::FullScreenQuad(){ + float quadVertices[] = { // vertex attributes for a quad that fills the entire screen in Normalized Device Coordinates. + // positions // texCoords + -1.0f, 1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, + + -1.0f, 1.0f, 0.0f, 1.0f, + 1.0f, -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f + }; + unsigned int vbo; + glGenVertexArrays(1, &vao); + glGenBuffers(1, &vbo); + glBindVertexArray(vao); + glBindBuffer(GL_ARRAY_BUFFER, vbo); + glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), &quadVertices, GL_STATIC_DRAW); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)0); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float))); +} diff --git a/main.cpp b/main.cpp index 0e778d5..a96172e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,7 @@ #include #include #include +#include "FullScreenQuad.hpp" float vertices[] = { -0.5f, -0.5f, 0.0f, @@ -129,6 +130,8 @@ int main(int argc, char** argv) { unsigned int shaderProgramm = compShader(); unsigned int VAO = initVAO(); + FullScreenQuad fsq{}; + while (!glfwWindowShouldClose(window)) { processInput(window); @@ -143,6 +146,9 @@ int main(int argc, char** argv) { glBindVertexArray(VAO); glDrawArrays(GL_TRIANGLES, 0, 3); + glBindVertexArray(fsq.getVAO()); + glDrawArrays(GL_TRIANGLES, 0, 6); + /* Poll for and process events */ glfwPollEvents();