Merge "Fix OpenGL errors in various places."

This commit is contained in:
Romain Guy
2010-09-22 16:46:37 -07:00
committed by Android (Google) Code Review
7 changed files with 35 additions and 18 deletions

View File

@@ -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;