diff --git a/src/drawing/engines/opengl/CopyFramebufferShader.cpp b/src/drawing/engines/opengl/CopyFramebufferShader.cpp index 69ab07300d..a5520099a5 100644 --- a/src/drawing/engines/opengl/CopyFramebufferShader.cpp +++ b/src/drawing/engines/opengl/CopyFramebufferShader.cpp @@ -42,8 +42,6 @@ CopyFramebufferShader::~CopyFramebufferShader() { glDeleteBuffers(1, &_vbo); glDeleteVertexArrays(1, &_vao); - - glBindVertexArray(_vao); } void CopyFramebufferShader::GetLocations() @@ -79,7 +77,7 @@ void CopyFramebufferShader::SetTexture(GLuint texture) void CopyFramebufferShader::Draw() { glBindVertexArray(_vao); - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } #endif /* DISABLE_OPENGL */ diff --git a/src/drawing/engines/opengl/DrawImageMaskedShader.cpp b/src/drawing/engines/opengl/DrawImageMaskedShader.cpp index ac3bcb1035..3566c02cfc 100644 --- a/src/drawing/engines/opengl/DrawImageMaskedShader.cpp +++ b/src/drawing/engines/opengl/DrawImageMaskedShader.cpp @@ -87,7 +87,7 @@ void DrawImageMaskedShader::Draw(sint32 left, sint32 top, sint32 right, sint32 b SetBounds(left, top, right, bottom); glBindVertexArray(_vao); - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } #endif /* DISABLE_OPENGL */ diff --git a/src/drawing/engines/opengl/DrawImageShader.cpp b/src/drawing/engines/opengl/DrawImageShader.cpp index d423f9cde3..d8000fe5ce 100644 --- a/src/drawing/engines/opengl/DrawImageShader.cpp +++ b/src/drawing/engines/opengl/DrawImageShader.cpp @@ -100,7 +100,7 @@ void DrawImageShader::Draw(sint32 left, sint32 top, sint32 right, sint32 bottom) SetBounds(left, top, right, bottom); glBindVertexArray(_vao); - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } #endif /* DISABLE_OPENGL */ diff --git a/src/drawing/engines/opengl/FillRectShader.cpp b/src/drawing/engines/opengl/FillRectShader.cpp index ca14750188..9c02a00148 100644 --- a/src/drawing/engines/opengl/FillRectShader.cpp +++ b/src/drawing/engines/opengl/FillRectShader.cpp @@ -95,7 +95,7 @@ void FillRectShader::Draw(sint32 left, sint32 top, sint32 right, sint32 bottom) SetBounds(left, top, right, bottom); glBindVertexArray(_vao); - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } #endif /* DISABLE_OPENGL */ diff --git a/src/drawing/engines/opengl/OpenGLAPI.h b/src/drawing/engines/opengl/OpenGLAPI.h index 470bf18053..8ee1713f64 100644 --- a/src/drawing/engines/opengl/OpenGLAPI.h +++ b/src/drawing/engines/opengl/OpenGLAPI.h @@ -154,6 +154,16 @@ GLAPI_DECL PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer GLAP #endif /* OPENGL_NO_LINK */ +inline void CheckGLError() +{ + GLenum error = glGetError(); + while (error != GL_NO_ERROR) + { + log_error("OpenGL Error 0x%04X", error); + error = glGetError(); + } +} + namespace OpenGLAPI { bool Initialise(); diff --git a/src/drawing/engines/opengl/OpenGLDrawingEngine.cpp b/src/drawing/engines/opengl/OpenGLDrawingEngine.cpp index 418b7a1b8c..a9f7c6f239 100644 --- a/src/drawing/engines/opengl/OpenGLDrawingEngine.cpp +++ b/src/drawing/engines/opengl/OpenGLDrawingEngine.cpp @@ -330,6 +330,7 @@ public: ->GetTexture()); _copyFramebufferShader->Draw(); + CheckGLError(); Display(); }