36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#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)));
|
|
}
|