summaryrefslogtreecommitdiff
path: root/src/mbgl/gl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r--src/mbgl/gl/context.cpp6
-rw-r--r--src/mbgl/gl/context.hpp2
2 files changed, 8 insertions, 0 deletions
diff --git a/src/mbgl/gl/context.cpp b/src/mbgl/gl/context.cpp
index 3e88624d4f..4d9c2055de 100644
--- a/src/mbgl/gl/context.cpp
+++ b/src/mbgl/gl/context.cpp
@@ -682,7 +682,13 @@ void Context::performCleanup() {
abandonedRenderbuffers.data()));
abandonedRenderbuffers.clear();
}
+}
+
+void Context::reduceMemoryUsage() {
+ performCleanup();
+ // Ensure that all pending actions are executed to ensure that they happen before the app goes
+ // to the background.
MBGL_CHECK_ERROR(glFinish());
}
diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp
index 80278718d1..70f12e5a8d 100644
--- a/src/mbgl/gl/context.hpp
+++ b/src/mbgl/gl/context.hpp
@@ -96,6 +96,8 @@ public:
// Only call this while the OpenGL context is exclusive to this thread.
void performCleanup() override;
+ void reduceMemoryUsage() override;
+
// Drain pools and remove abandoned objects, in preparation for destroying the store.
// Only call this while the OpenGL context is exclusive to this thread.
void reset();