diff options
| author | John Reck <jreck@google.com> | 2014-11-07 22:55:32 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2014-11-07 22:55:32 +0000 |
| commit | f1923c368c5c08a477b9f94dea6a499798d91d4f (patch) | |
| tree | 02b6b199a0e5ef102f50fc21d75ac0fe614c03a9 /core/java | |
| parent | 9a0aa553ad9f6657cbbf0a182566c481e191e6b7 (diff) | |
| parent | 8dda03a08603f45b3c2c90633491ce2c1fea266b (diff) | |
| download | frameworks_base-f1923c368c5c08a477b9f94dea6a499798d91d4f.zip frameworks_base-f1923c368c5c08a477b9f94dea6a499798d91d4f.tar.gz frameworks_base-f1923c368c5c08a477b9f94dea6a499798d91d4f.tar.bz2 | |
am 8dda03a0: am ca93f69c: Merge "Have an actual fallback if the surface is lost" into lmp-mr1-dev
* commit '8dda03a08603f45b3c2c90633491ce2c1fea266b':
Have an actual fallback if the surface is lost
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/ThreadedRenderer.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java index 00a8884..5579c13 100644 --- a/core/java/android/view/ThreadedRenderer.java +++ b/core/java/android/view/ThreadedRenderer.java @@ -66,6 +66,8 @@ public class ThreadedRenderer extends HardwareRenderer { private static final int SYNC_OK = 0; // Needs a ViewRoot invalidate private static final int SYNC_INVALIDATE_REQUIRED = 1 << 0; + // Spoiler: the reward is GPU-accelerated drawing, better find that Surface! + private static final int SYNC_LOST_SURFACE_REWARD_IF_FOUND = 1 << 1; private static final String[] VISUALIZERS = { PROFILE_PROPERTY_VISUALIZE_BARS, @@ -336,6 +338,12 @@ public class ThreadedRenderer extends HardwareRenderer { int syncResult = nSyncAndDrawFrame(mNativeProxy, frameTimeNanos, recordDuration, view.getResources().getDisplayMetrics().density); + if ((syncResult & SYNC_LOST_SURFACE_REWARD_IF_FOUND) != 0) { + setEnabled(false); + // Invalidate since we failed to draw. This should fetch a Surface + // if it is still needed or do nothing if we are no longer drawing + attachInfo.mViewRootImpl.invalidate(); + } if ((syncResult & SYNC_INVALIDATE_REQUIRED) != 0) { attachInfo.mViewRootImpl.invalidate(); } |
