summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-10-25 15:29:10 -0700
committerRomain Guy <romainguy@google.com>2010-10-25 15:29:10 -0700
commitc361da845a205ac35e724c0ca436744d483de7aa (patch)
tree266da002f1a10400996dd8b7c4d1d4ae219b6368
parent98ce4a43a46998ae77197a909fdceae62d273f98 (diff)
downloadframeworks_base-c361da845a205ac35e724c0ca436744d483de7aa.zip
frameworks_base-c361da845a205ac35e724c0ca436744d483de7aa.tar.gz
frameworks_base-c361da845a205ac35e724c0ca436744d483de7aa.tar.bz2
Don't initialize the hw renderer without a valid surface.
Bug #3054952 Change-Id: I5b4074391dbd84b04a14f7d2fb1b9a4a2487e1e2
-rw-r--r--core/java/android/view/ViewRoot.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index ea688ad..2e368b8 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -822,7 +822,7 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn
mDrawingAllowed = true;
}
- boolean hwIntialized = false;
+ boolean hwInitialized = false;
boolean contentInsetsChanged = false;
boolean visibleInsetsChanged;
boolean hadSurface = mSurface.isValid();
@@ -887,7 +887,7 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn
mPreviousTransparentRegion.setEmpty();
if (mAttachInfo.mHardwareRenderer != null) {
- hwIntialized = mAttachInfo.mHardwareRenderer.initialize(mHolder);
+ hwInitialized = mAttachInfo.mHardwareRenderer.initialize(mHolder);
}
}
} else if (!mSurface.isValid()) {
@@ -935,6 +935,11 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn
}
}
surfaceChanged = true;
+
+ if (mAttachInfo.mHardwareRenderer != null) {
+ // This will bail out early if already initialized
+ mAttachInfo.mHardwareRenderer.initialize(mHolder);
+ }
}
if (surfaceChanged) {
mSurfaceHolderCallback.surfaceChanged(mSurfaceHolder,
@@ -965,7 +970,7 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn
}
}
- if (hwIntialized || (windowShouldResize && mAttachInfo.mHardwareRenderer != null)) {
+ if (hwInitialized || (windowShouldResize && mAttachInfo.mHardwareRenderer != null)) {
mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight);
}
@@ -1795,7 +1800,8 @@ public final class ViewRoot extends Handler implements ViewParent, View.AttachIn
boolean inTouchMode = msg.arg2 != 0;
ensureTouchModeLocally(inTouchMode);
- if (mAttachInfo.mHardwareRenderer != null) {
+ if (mAttachInfo.mHardwareRenderer != null &&
+ mSurface != null && mSurface.isValid()) {
mAttachInfo.mHardwareRenderer.initializeIfNeeded(mWidth, mHeight,
mAttachInfo, mHolder);
}