summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/CanvasContext.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-11-25 09:54:13 -0800
committerJohn Reck <jreck@google.com>2014-11-25 09:54:13 -0800
commitb945f2313aee6e49a082ba5caaf95334d2570d52 (patch)
tree99319f925561305925e2dc3ec71c651f2f04b0cd /libs/hwui/renderthread/CanvasContext.cpp
parent0c31d97a38909e85e0df6cdc29469dbb1580ed4b (diff)
Force-use the pbuffer surface for destroy
Bug: 18518580 If CanvasContext is being destroyed() the Surface is probably no longer valid as well, so make sure to makeCurrent() to the pbuffer surface so that the subsequent GL operations are not using an invalid EGLSurface Change-Id: Ica5d6a065841772c47e00ad65aa7894c7e27e043
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 39528be830df..4f39ac98c601 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -60,6 +60,8 @@ CanvasContext::~CanvasContext() {
void CanvasContext::destroy() {
stopDrawing();
+ setSurface(NULL);
+ mEglManager.usePBufferSurface();
freePrefetechedLayers();
destroyHardwareResources();
mAnimationContext->destroy();
@@ -67,7 +69,6 @@ void CanvasContext::destroy() {
delete mCanvas;
mCanvas = 0;
}
- setSurface(NULL);
}
void CanvasContext::setSurface(ANativeWindow* window) {