summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2013-06-12 15:31:28 -0700
committerRomain Guy <romainguy@google.com>2013-06-12 15:31:28 -0700
commit405436021da156fbe3c5d4de48bdefa564cf7fc0 (patch)
tree339d70e2c2e90f87a5c303e7167fe9db0508ed64 /core/java/android/view/ViewRootImpl.java
parent97f41383eb2bb098767ca153e470009fea810540 (diff)
Restore buildLayer()'s old behavior; it's synchronous again
Bug #9193833 Change-Id: I4ee07e65c0a8967f0b55da030ecaad6dfc46136f
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 60d8a75c749c..c28eb98776dd 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -640,6 +640,18 @@ public final class ViewRootImpl implements ViewParent,
}
}
+ void flushHardwareLayerUpdates() {
+ if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled() &&
+ mAttachInfo.mHardwareRenderer.validate()) {
+ mAttachInfo.mHardwareRenderer.flushLayerUpdates();
+ }
+ }
+
+ void dispatchFlushHardwareLayerUpdates() {
+ mHandler.removeMessages(MSG_FLUSH_LAYER_UPDATES);
+ mHandler.sendMessageAtFrontOfQueue(mHandler.obtainMessage(MSG_FLUSH_LAYER_UPDATES));
+ }
+
public boolean attachFunctor(int functor) {
//noinspection SimplifiableIfStatement
if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
@@ -2900,6 +2912,7 @@ public final class ViewRootImpl implements ViewParent,
private final static int MSG_DISPATCH_DONE_ANIMATING = 22;
private final static int MSG_INVALIDATE_WORLD = 23;
private final static int MSG_WINDOW_MOVED = 24;
+ private final static int MSG_FLUSH_LAYER_UPDATES = 25;
final class ViewRootHandler extends Handler {
@Override
@@ -2949,6 +2962,8 @@ public final class ViewRootImpl implements ViewParent,
return "MSG_DISPATCH_DONE_ANIMATING";
case MSG_WINDOW_MOVED:
return "MSG_WINDOW_MOVED";
+ case MSG_FLUSH_LAYER_UPDATES:
+ return "MSG_FLUSH_LAYER_UPDATES";
}
return super.getMessageName(message);
}
@@ -3171,6 +3186,9 @@ public final class ViewRootImpl implements ViewParent,
invalidateWorld(mView);
}
} break;
+ case MSG_FLUSH_LAYER_UPDATES: {
+ flushHardwareLayerUpdates();
+ } break;
}
}
}