From d06c6d681d6f3d3c2d4b2bb04d64b78ec259811e Mon Sep 17 00:00:00 2001 From: Anselme Date: Mon, 6 Jun 2016 17:02:25 +0200 Subject: [PATCH] all opengl includes are now in opengl.h --- src/crappymodule.h | 2 +- src/forwardmodule.h | 2 +- src/framebuffer.h | 2 +- src/mesh.h | 2 +- src/opengl.h | 6 ++++++ src/posteffectmodule.h | 2 +- src/shader.cpp | 1 - src/shader.h | 2 +- src/skyboxmodule.h | 2 +- src/sparrowrenderer.cpp | 47 ++++++++++++++++++++++++++++++++++++----- src/sparrowrenderer.h | 10 ++++++++- src/texture.h | 2 +- src/textureblur.h | 2 +- 13 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 src/opengl.h diff --git a/src/crappymodule.h b/src/crappymodule.h index 0ab073c..d9e9ea3 100644 --- a/src/crappymodule.h +++ b/src/crappymodule.h @@ -3,7 +3,7 @@ #include "module.h" #include -#include "glew.h" +#include "opengl.h" class CrappyModule : public Module { diff --git a/src/forwardmodule.h b/src/forwardmodule.h index 1356897..b784d21 100644 --- a/src/forwardmodule.h +++ b/src/forwardmodule.h @@ -1,7 +1,7 @@ #ifndef FORWARDMODULE_H #define FORWARDMODULE_H -#include "glew.h" +#include "opengl.h" #include "module.h" #include #include diff --git a/src/framebuffer.h b/src/framebuffer.h index 36ecce1..23f69d6 100644 --- a/src/framebuffer.h +++ b/src/framebuffer.h @@ -1,7 +1,7 @@ #ifndef FRAMEBUFFER_H #define FRAMEBUFFER_H -#include "glew.h" +#include "opengl.h" #include class Texture; diff --git a/src/mesh.h b/src/mesh.h index b50dbd6..be8c947 100644 --- a/src/mesh.h +++ b/src/mesh.h @@ -1,7 +1,7 @@ #ifndef MESH_H #define MESH_H -#include "glew.h" +#include "opengl.h" #include #include #include diff --git a/src/opengl.h b/src/opengl.h new file mode 100644 index 0000000..62248e0 --- /dev/null +++ b/src/opengl.h @@ -0,0 +1,6 @@ +#ifndef OPENGL_INCLUDE_H +#define OPENGL_INCLUDE_H + +#include "glew.h" + +#endif // OPENGL_INCLUDE_H diff --git a/src/posteffectmodule.h b/src/posteffectmodule.h index b1cf8a4..8eafe81 100644 --- a/src/posteffectmodule.h +++ b/src/posteffectmodule.h @@ -1,7 +1,7 @@ #ifndef POSTEFFECTMODULE_H #define POSTEFFECTMODULE_H -#include "glew.h" +#include "opengl.h" #include #include #include "module.h" diff --git a/src/shader.cpp b/src/shader.cpp index 9c084db..6528500 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -1,4 +1,3 @@ -#include "glew.h" #include "shader.h" #include diff --git a/src/shader.h b/src/shader.h index 389a9bb..3f70d2b 100644 --- a/src/shader.h +++ b/src/shader.h @@ -1,7 +1,7 @@ #ifndef SHADER_H #define SHADER_H -#include "glew.h" +#include "opengl.h" #include #include diff --git a/src/skyboxmodule.h b/src/skyboxmodule.h index 8235db9..30736bc 100644 --- a/src/skyboxmodule.h +++ b/src/skyboxmodule.h @@ -1,7 +1,7 @@ #ifndef SKYBOXMODULE_H #define SKYBOXMODULE_H -#include "glew.h" +#include "opengl.h" #include "module.h" #include diff --git a/src/sparrowrenderer.cpp b/src/sparrowrenderer.cpp index 26e90f7..a1572b8 100644 --- a/src/sparrowrenderer.cpp +++ b/src/sparrowrenderer.cpp @@ -1,8 +1,5 @@ -#include "glew.h" -#include -#include -#include #include "sparrowrenderer.h" +#include #include "camera.h" #include "framebuffer.h" @@ -14,6 +11,15 @@ #include "scene.h" #include "Version.h" +GLuint SparrowRenderer::m_quadVAO = 0; +GLuint SparrowRenderer::m_quadVBO = 0; + +const GLfloat QUAD_VERTICES[] = { + -1.0f, -1.0f, + 3.0f, -1.0f, + -1.0f, 3.0f +}; + // main methods bool SparrowRenderer::modernOpenglAvailable = false; @@ -45,10 +51,33 @@ void SparrowRenderer::initGL(int w, int h, bool forceCrappy) glGetString(GL_RENDERER), glGetString(GL_VENDOR)); #endif - + + // allocate quad + if(m_quadVAO == 0) + { + glGenVertexArrays(1, &m_quadVAO); + glBindVertexArray(m_quadVAO); + glGenBuffers(1, &m_quadVBO); + glBindBuffer(GL_ARRAY_BUFFER, m_quadVBO); + glBufferData(GL_ARRAY_BUFFER, 3 * 2 * sizeof(GLfloat), QUAD_VERTICES, GL_STATIC_DRAW); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat)*2, NULL); + glEnableVertexAttribArray(0); + glBindVertexArray(0); + } + + // set screen size resizeGL(w, h); } +SparrowRenderer::~SparrowRenderer() +{ + if(m_quadVAO != 0) + { + glDeleteVertexArrays(1, &m_quadVAO); + glDeleteBuffers(1, &m_quadVBO); + } +} + void SparrowRenderer::resizeGL(int w, int h) { width = w; @@ -74,6 +103,14 @@ bool SparrowRenderer::isModernOpenGLAvailable() return modernOpenglAvailable; } +// utils +void SparrowRenderer::drawQuad() +{ + glBindVertexArray(m_quadVAO); + glDrawArrays(GL_TRIANGLES, 0, 3); + glBindVertexArray(0); +} + // scene methods void SparrowRenderer::setScene(Scene* myScene) diff --git a/src/sparrowrenderer.h b/src/sparrowrenderer.h index e5dbdb4..578d84c 100644 --- a/src/sparrowrenderer.h +++ b/src/sparrowrenderer.h @@ -1,7 +1,7 @@ #ifndef SPARROWRENDERER_H #define SPARROWRENDERER_H -#include "glew.h" +#include "opengl.h" #include #include #include @@ -17,6 +17,8 @@ public: SparrowRenderer() : m_scene(NULL) {} + + ~SparrowRenderer(); // main methods void initGL(int w, int h, bool forceCrappy = false); @@ -24,6 +26,9 @@ public: void renderGL(); static bool isModernOpenGLAvailable(); + + // utils + static void drawQuad(); // scene methods void setScene(Scene* myScene); @@ -32,6 +37,9 @@ protected: int width; int height; + static GLuint m_quadVAO; + static GLuint m_quadVBO; + Scene* m_scene; static bool modernOpenglAvailable; diff --git a/src/texture.h b/src/texture.h index c7515fb..72298bd 100644 --- a/src/texture.h +++ b/src/texture.h @@ -1,7 +1,7 @@ #ifndef TEXTURE_H #define TEXTURE_H -#include "glew.h" +#include "opengl.h" #include class Image; diff --git a/src/textureblur.h b/src/textureblur.h index 0120c41..bd3fae2 100644 --- a/src/textureblur.h +++ b/src/textureblur.h @@ -1,7 +1,7 @@ #ifndef TEXTUREBLUR_H #define TEXTUREBLUR_H -#include "glew.h" +#include "opengl.h" class FrameBuffer; class Shader;