feat: added FullscreenQuad

This commit is contained in:
2025-08-25 11:32:01 +02:00
parent 2c76e41fbd
commit 2a313fbc51
2 changed files with 39 additions and 0 deletions

33
FullScreenQuad.hpp Normal file
View File

@@ -0,0 +1,33 @@
#include <GL/glew.h>
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)));
}

View File

@@ -1,6 +1,7 @@
#include <GL/glew.h> #include <GL/glew.h>
#include <GLFW/glfw3.h> #include <GLFW/glfw3.h>
#include <cstdio> #include <cstdio>
#include "FullScreenQuad.hpp"
float vertices[] = { float vertices[] = {
-0.5f, -0.5f, 0.0f, -0.5f, -0.5f, 0.0f,
@@ -129,6 +130,8 @@ int main(int argc, char** argv) {
unsigned int shaderProgramm = compShader(); unsigned int shaderProgramm = compShader();
unsigned int VAO = initVAO(); unsigned int VAO = initVAO();
FullScreenQuad fsq{};
while (!glfwWindowShouldClose(window)) while (!glfwWindowShouldClose(window))
{ {
processInput(window); processInput(window);
@@ -143,6 +146,9 @@ int main(int argc, char** argv) {
glBindVertexArray(VAO); glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES, 0, 3); glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(fsq.getVAO());
glDrawArrays(GL_TRIANGLES, 0, 6);
/* Poll for and process events */ /* Poll for and process events */
glfwPollEvents(); glfwPollEvents();