summaryrefslogtreecommitdiff
path: root/core/java/android/view/WindowManagerImpl.java
diff options
context:
space:
mode:
authorTeng-Hui Zhu <ztenghui@google.com>2012-03-01 15:18:05 -0800
committerTeng-Hui Zhu <ztenghui@google.com>2012-03-01 15:37:58 -0800
commitd9624138723c55a0ac2af58a2e78e98cd51eba27 (patch)
treeb4b402a35bd8beefc4e66adb9730257fdf5504c5 /core/java/android/view/WindowManagerImpl.java
parentfdd646b2b105e23cdc8517ac055448340a667e37 (diff)
Allow webview to delete GL resource in a valid EGL context
bug:6079959 Change-Id: Idee1031b0bcc4aeb498a18eb01970a8ed7efd285
Diffstat (limited to 'core/java/android/view/WindowManagerImpl.java')
-rw-r--r--core/java/android/view/WindowManagerImpl.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java
index 6dbdedbb7cb4..f56dd107bd74 100644
--- a/core/java/android/view/WindowManagerImpl.java
+++ b/core/java/android/view/WindowManagerImpl.java
@@ -105,6 +105,7 @@ public class WindowManagerImpl implements WindowManager {
private View[] mViews;
private ViewRootImpl[] mRoots;
private WindowManager.LayoutParams[] mParams;
+ private boolean mNeedsEglTerminate;
private final static Object sLock = new Object();
private final static WindowManagerImpl sWindowManager = new WindowManagerImpl();
@@ -447,8 +448,7 @@ public class WindowManagerImpl implements WindowManager {
mRoots[i].terminateHardwareResources();
}
}
- // Terminate the hardware renderer to free all resources
- ManagedEGLContext.doTerminate();
+ mNeedsEglTerminate = true;
break;
}
// high end gfx devices fall through to next case
@@ -461,6 +461,16 @@ public class WindowManagerImpl implements WindowManager {
/**
* @hide
*/
+ public void terminateEgl() {
+ if (mNeedsEglTerminate) {
+ ManagedEGLContext.doTerminate();
+ mNeedsEglTerminate = false;
+ }
+ }
+
+ /**
+ * @hide
+ */
public void trimLocalMemory() {
synchronized (this) {
if (mViews == null) return;