From 38dc7ff25ffe90d034f490f4cd0570e51158bcc6 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sun, 19 Nov 2017 19:56:05 +0700 Subject: [PATCH] Clear fences list in olorBufferReaderWithBufferStorage::_destroyBuffers() Fixed memory leak on graphics context destroy. --- .../opengl_ColorBufferReaderWithBufferStorage.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Graphics/OpenGLContext/opengl_ColorBufferReaderWithBufferStorage.cpp b/src/Graphics/OpenGLContext/opengl_ColorBufferReaderWithBufferStorage.cpp index 70af4185..b63e2941 100644 --- a/src/Graphics/OpenGLContext/opengl_ColorBufferReaderWithBufferStorage.cpp +++ b/src/Graphics/OpenGLContext/opengl_ColorBufferReaderWithBufferStorage.cpp @@ -37,8 +37,10 @@ void ColorBufferReaderWithBufferStorage::_destroyBuffers() { glDeleteBuffers(_numPBO, m_PBO); - for (int index = 0; index < _numPBO; ++index) + for (int index = 0; index < _numPBO; ++index) { m_PBO[index] = 0; + glDeleteSync(m_fence[index]); + } } const u8 * ColorBufferReaderWithBufferStorage::_readPixels(const ReadColorBufferParams& _params, u32& _heightOffset, @@ -58,6 +60,7 @@ const u8 * ColorBufferReaderWithBufferStorage::_readPixels(const ReadColorBuffer if (m_fence[m_curIndex] != 0) { glClientWaitSync(m_fence[m_curIndex], 0, 100000000); glDeleteSync(m_fence[m_curIndex]); + m_fence[m_curIndex] = 0; } } else { glFinish();