diff options
| author | Romain Guy <romainguy@google.com> | 2010-10-25 15:36:18 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-25 15:36:18 -0700 |
| commit | 551397d5eb91d1bf13b9eff5a89824ea1b3c479e (patch) | |
| tree | 275e89d4d02bd1082d810d98f758a109134ea1d0 | |
| parent | 6dc0c73fb05bcac570a134242789512977201648 (diff) | |
| parent | c361da845a205ac35e724c0ca436744d483de7aa (diff) | |
| download | frameworks_base-551397d5eb91d1bf13b9eff5a89824ea1b3c479e.zip frameworks_base-551397d5eb91d1bf13b9eff5a89824ea1b3c479e.tar.gz frameworks_base-551397d5eb91d1bf13b9eff5a89824ea1b3c479e.tar.bz2 | |
Merge "Don't initialize the hw renderer without a valid surface. Bug #3054952"
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 14 |
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); } |
