diff --git a/xbmc/guilib/TextureGL.cpp b/xbmc/guilib/TextureGL.cpp index 2bce969ef4905..97da5e28106f4 100644 --- a/xbmc/guilib/TextureGL.cpp +++ b/xbmc/guilib/TextureGL.cpp @@ -23,6 +23,7 @@ #include "windowing/WindowingFactory.h" #include "utils/log.h" #include "utils/GLUtils.h" +#include "guilib/TextureManager.h" #if defined(HAS_GL) || defined(HAS_GLES) @@ -50,7 +51,7 @@ void CGLTexture::CreateTextureObject() void CGLTexture::DestroyTextureObject() { if (m_texture) - glDeleteTextures(1, (GLuint*) &m_texture); + g_TextureManager.ReleaseHwTexture(m_texture); } void CGLTexture::LoadToGPU() diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp index 18257d5a47c1d..eff53151a822d 100644 --- a/xbmc/guilib/TextureManager.cpp +++ b/xbmc/guilib/TextureManager.cpp @@ -487,6 +487,7 @@ void CGUITextureManager::FreeUnusedTextures(unsigned int timeDelay) void CGUITextureManager::ReleaseHwTexture(unsigned int texture) { + CSingleLock lock(g_graphicsContext); m_unusedHwTextures.push_back(texture); }