diff options
Diffstat (limited to 'src/mbgl/gl/object_store.cpp')
-rw-r--r-- | src/mbgl/gl/object_store.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mbgl/gl/object_store.cpp b/src/mbgl/gl/object_store.cpp index 4139854f61..9ddbaa7c8c 100644 --- a/src/mbgl/gl/object_store.cpp +++ b/src/mbgl/gl/object_store.cpp @@ -34,6 +34,11 @@ void VAODeleter::operator()(GLuint id) const { store->abandonedVAOs.push_back(id); } +void FBODeleter::operator()(GLuint id) const { + assert(store); + store->abandonedFBOs.push_back(id); +} + ObjectStore::~ObjectStore() { assert(pooledTextures.empty()); assert(abandonedPrograms.empty()); @@ -41,6 +46,7 @@ ObjectStore::~ObjectStore() { assert(abandonedBuffers.empty()); assert(abandonedTextures.empty()); assert(abandonedVAOs.empty()); + assert(abandonedFBOs.empty()); } void ObjectStore::reset() { @@ -74,6 +80,11 @@ void ObjectStore::performCleanup() { MBGL_CHECK_ERROR(gl::DeleteVertexArrays(int(abandonedVAOs.size()), abandonedVAOs.data())); abandonedVAOs.clear(); } + + if (!abandonedFBOs.empty()) { + MBGL_CHECK_ERROR(glDeleteFramebuffers(int(abandonedFBOs.size()), abandonedFBOs.data())); + abandonedFBOs.clear(); + } } } // namespace gl |