From a993c8ef6584fe0f572bf9735d28e07ca533ea49 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Mon, 3 Sep 2018 00:58:08 -0400 Subject: [PATCH] Remove quad from screenspacerenderable (working on #525) --- .../rendering/screenspacerenderable.h | 3 -- src/rendering/screenspacerenderable.cpp | 50 ++----------------- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/include/openspace/rendering/screenspacerenderable.h b/include/openspace/rendering/screenspacerenderable.h index e5c0df637f..d76a483058 100644 --- a/include/openspace/rendering/screenspacerenderable.h +++ b/include/openspace/rendering/screenspacerenderable.h @@ -77,7 +77,6 @@ public: static documentation::Documentation Documentation(); protected: - void createPlane(); void useEuclideanCoordinates(bool b); /** @@ -115,8 +114,6 @@ protected: properties::FloatProperty _alpha; properties::TriggerProperty _delete; - GLuint _quad = 0; - GLuint _vertexPositionBuffer = 0; glm::ivec2 _objectSize; UniformCache(occlusionDepth, alpha, modelTransform, viewProj, texture) _uniformCache; std::unique_ptr _shader; diff --git a/src/rendering/screenspacerenderable.cpp b/src/rendering/screenspacerenderable.cpp index 05715fa5ab..13b75fd812 100644 --- a/src/rendering/screenspacerenderable.cpp +++ b/src/rendering/screenspacerenderable.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -355,7 +356,6 @@ bool ScreenSpaceRenderable::initialize() { bool ScreenSpaceRenderable::initializeGL() { _originalViewportSize = global::windowDelegate.currentWindowResolution(); - createPlane(); createShaders(); return isReady(); @@ -366,12 +366,6 @@ bool ScreenSpaceRenderable::deinitialize() { } bool ScreenSpaceRenderable::deinitializeGL() { - glDeleteVertexArrays(1, &_quad); - _quad = 0; - - glDeleteBuffers(1, &_vertexPositionBuffer); - _vertexPositionBuffer = 0; - if (_shader) { global::renderEngine.removeRenderProgram(_shader.get()); _shader = nullptr; @@ -406,44 +400,6 @@ float ScreenSpaceRenderable::depth() const { return _depth; } -void ScreenSpaceRenderable::createPlane() { - glGenVertexArrays(1, &_quad); - glGenBuffers(1, &_vertexPositionBuffer); - - const GLfloat data[] = { - // x y s t - -1.f, -1.f, 0.f, 0.f, - 1.f, 1.f, 1.f, 1.f, - -1.f, 1.f, 0.f, 1.f, - -1.f, -1.f, 0.f, 0.f, - 1.f, -1.f, 1.f, 0.f, - 1.f, 1.f, 1.f, 1.f, - }; - - glBindVertexArray(_quad); - glBindBuffer(GL_ARRAY_BUFFER, _vertexPositionBuffer); - glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW); - glEnableVertexAttribArray(0); - glVertexAttribPointer( - 0, - 2, - GL_FLOAT, - GL_FALSE, - sizeof(GLfloat) * 4, - nullptr - ); - - glEnableVertexAttribArray(1); - glVertexAttribPointer( - 1, - 2, - GL_FLOAT, - GL_FALSE, - sizeof(GLfloat) * 4, - reinterpret_cast(sizeof(GLfloat) * 2) - ); -} - void ScreenSpaceRenderable::useEuclideanCoordinates(bool b) { _useEuclideanCoordinates = b; if (_useEuclideanCoordinates) { @@ -544,15 +500,15 @@ void ScreenSpaceRenderable::draw(glm::mat4 modelTransform) { ghoul::opengl::TextureUnit unit; unit.activate(); bindTexture(); - defer { unbindTexture(); }; _shader->setUniform(_uniformCache.texture, unit); - glBindVertexArray(_quad); + glBindVertexArray(rendering::helper::vertexObjects.square.vao); glDrawArrays(GL_TRIANGLES, 0, 6); glEnable(GL_CULL_FACE); _shader->deactivate(); + unbindTexture(); } void ScreenSpaceRenderable::bindTexture() {}