diff options
| author | Romain Guy <romainguy@google.com> | 2012-05-15 19:19:41 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-15 19:19:41 -0700 |
| commit | d44a16864d549e08506d0f80198031f05a03bd15 (patch) | |
| tree | 5887cf8b117826f36b4f5b2c86a56e00c96ab803 /core/java/android | |
| parent | 67d10a5867ac26155117f2ffda84f9d2a21dbcf0 (diff) | |
| parent | 413baf8a03db180607efaca0bb60c15a153c4322 (diff) | |
| download | frameworks_base-d44a16864d549e08506d0f80198031f05a03bd15.zip frameworks_base-d44a16864d549e08506d0f80198031f05a03bd15.tar.gz frameworks_base-d44a16864d549e08506d0f80198031f05a03bd15.tar.bz2 | |
Merge "Don't draw onto a hw surface using the software renderer Bug #6485955" into jb-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 41cd887..bcd336d 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2183,6 +2183,18 @@ public final class ViewRootImpl implements ViewParent, private boolean drawSoftware(Surface surface, AttachInfo attachInfo, int yoff, boolean scalingRequired, Rect dirty) { + // If we get here with a disabled & requested hardware renderer, something went + // wrong (an invalidate posted right before we destroyed the hardware surface + // for instance) so we should just bail out. Locking the surface with software + // rendering at this point would lock it forever and prevent hardware renderer + // from doing its job when it comes back. + if (attachInfo.mHardwareRenderer != null && !attachInfo.mHardwareRenderer.isEnabled() && + attachInfo.mHardwareRenderer.isRequested()) { + mFullRedrawNeeded = true; + scheduleTraversals(); + return false; + } + // Draw with software renderer. Canvas canvas; try { |
