diff options
| author | Romain Guy <romainguy@android.com> | 2010-09-22 16:46:37 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-09-22 16:46:37 -0700 |
| commit | deea2df0a727de0b7232b1043d1b3757a90de671 (patch) | |
| tree | 01394e45b201dc1630fba48c4081d21bca01df95 /core/java | |
| parent | 95ee96282fc6bffe30bee54ff9affeaf5abd2611 (diff) | |
| parent | 29d8997bd43b7c4ad37fc3d6f91eaafa74913c88 (diff) | |
Merge "Fix OpenGL errors in various places."
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index e71b5b680553..0321be0c90e7 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -1584,11 +1584,7 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn mAttachInfo.mRootView = null; mAttachInfo.mSurface = null; - if (mHwRenderer != null) { - mHwRenderer.destroy(true); - mHwRenderer = null; - mAttachInfo.mHardwareAccelerated = false; - } + destroyHardwareRenderer(); mSurface.release(); @@ -2542,6 +2538,8 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn if (LOCAL_LOGV) Log.v(TAG, "DIE in " + this + " of " + mSurface); synchronized (this) { if (mAdded && !mFirst) { + destroyHardwareRenderer(); + int viewVisibility = mView.getVisibility(); boolean viewVisibilityChanged = mViewVisibility != viewVisibility; if (mWindowAttributesChanged || viewVisibilityChanged) { @@ -2566,6 +2564,14 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn } } + private void destroyHardwareRenderer() { + if (mHwRenderer != null) { + mHwRenderer.destroy(true); + mHwRenderer = null; + mAttachInfo.mHardwareAccelerated = false; + } + } + public void dispatchFinishedEvent(int seq, boolean handled) { Message msg = obtainMessage(FINISHED_EVENT); msg.arg1 = seq; |
