summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-05-01 14:22:47 -0700
committerChris Craik <ccraik@google.com>2015-05-01 14:30:15 -0700
commit31a2d063df5111e730abe7d07be064690deedc34 (patch)
treead96bc2fe1f7a8bc0feeb39a63763240746c4308 /core/java/android
parent5c705c595d6adbb4b6e8ad5dee29205246cd5cc4 (diff)
downloadframeworks_base-31a2d063df5111e730abe7d07be064690deedc34.zip
frameworks_base-31a2d063df5111e730abe7d07be064690deedc34.tar.gz
frameworks_base-31a2d063df5111e730abe7d07be064690deedc34.tar.bz2
Revert "Revert "Merge getDisplayList and updateDisplayListIfDirty""
Fixes breakage from HwAccelerationTest This reverts commit b2847afde24aac22c8fb804cdce0c24b8a7c40c4. Change-Id: I762b3c9020fc1d06bac61ffa8b956049147515b1
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/GhostView.java6
-rw-r--r--core/java/android/view/ThreadedRenderer.java4
-rw-r--r--core/java/android/view/View.java27
-rw-r--r--core/java/android/view/ViewGroup.java5
-rw-r--r--core/java/android/view/ViewRootImpl.java6
5 files changed, 19 insertions, 29 deletions
diff --git a/core/java/android/view/GhostView.java b/core/java/android/view/GhostView.java
index d58e7c0..bc38e1a 100644
--- a/core/java/android/view/GhostView.java
+++ b/core/java/android/view/GhostView.java
@@ -41,7 +41,7 @@ public class GhostView extends View {
final ViewGroup parent = (ViewGroup) mView.getParent();
setGhostedVisibility(View.INVISIBLE);
parent.mRecreateDisplayList = true;
- parent.getDisplayList();
+ parent.updateDisplayListIfDirty();
}
@Override
@@ -49,7 +49,7 @@ public class GhostView extends View {
if (canvas instanceof DisplayListCanvas) {
DisplayListCanvas dlCanvas = (DisplayListCanvas) canvas;
mView.mRecreateDisplayList = true;
- RenderNode renderNode = mView.getDisplayList();
+ RenderNode renderNode = mView.updateDisplayListIfDirty();
if (renderNode.isValid()) {
dlCanvas.insertReorderBarrier(); // enable shadow for this rendernode
dlCanvas.drawRenderNode(renderNode);
@@ -84,7 +84,7 @@ public class GhostView extends View {
final ViewGroup parent = (ViewGroup) mView.getParent();
if (parent != null) {
parent.mRecreateDisplayList = true;
- parent.getDisplayList();
+ parent.updateDisplayListIfDirty();
}
}
}
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 5017a38..390d81d 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -269,7 +269,7 @@ public class ThreadedRenderer extends HardwareRenderer {
view.mRecreateDisplayList = (view.mPrivateFlags & View.PFLAG_INVALIDATED)
== View.PFLAG_INVALIDATED;
view.mPrivateFlags &= ~View.PFLAG_INVALIDATED;
- view.getDisplayList();
+ view.updateDisplayListIfDirty();
view.mRecreateDisplayList = false;
}
@@ -285,7 +285,7 @@ public class ThreadedRenderer extends HardwareRenderer {
callbacks.onHardwarePreDraw(canvas);
canvas.insertReorderBarrier();
- canvas.drawRenderNode(view.getDisplayList());
+ canvas.drawRenderNode(view.updateDisplayListIfDirty());
canvas.insertInorderBarrier();
callbacks.onHardwarePostDraw(canvas);
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index ed0ceb2..963b7a6 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -14711,11 +14711,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
return !(mAttachInfo == null || mAttachInfo.mHardwareRenderer == null);
}
- private void updateDisplayListIfDirty() {
+ /**
+ * Gets the RenderNode for the view, and updates its DisplayList (if needed and supported)
+ * @hide
+ */
+ @NonNull
+ public RenderNode updateDisplayListIfDirty() {
final RenderNode renderNode = mRenderNode;
if (!canHaveDisplayList()) {
// can't populate RenderNode, don't try
- return;
+ return renderNode;
}
if ((mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) == 0
@@ -14729,7 +14734,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mPrivateFlags &= ~PFLAG_DIRTY_MASK;
dispatchGetDisplayList();
- return; // no work needed
+ return renderNode; // no work needed
}
// If we got here, we're recreating it. Mark it as such to ensure that
@@ -14778,19 +14783,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mPrivateFlags |= PFLAG_DRAWN | PFLAG_DRAWING_CACHE_VALID;
mPrivateFlags &= ~PFLAG_DIRTY_MASK;
}
- }
-
- /**
- * Returns a RenderNode with View draw content recorded, which can be
- * used to draw this view again without executing its draw method.
- *
- * @return A RenderNode ready to replay, or null if caching is not enabled.
- *
- * @hide
- */
- public RenderNode getDisplayList() {
- updateDisplayListIfDirty();
- return mRenderNode;
+ return renderNode;
}
private void resetDisplayList() {
@@ -15552,7 +15545,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (drawingWithRenderNode) {
// Delay getting the display list until animation-driven alpha values are
// set up and possibly passed on to the view
- renderNode = getDisplayList();
+ renderNode = updateDisplayListIfDirty();
if (!renderNode.isValid()) {
// Uncommon, but possible. If a view is removed from the hierarchy during the call
// to getDisplayList(), the display list will be marked invalid and we should not
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index d0d4201..ef57dc3 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -3524,10 +3524,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
}
private void recreateChildDisplayList(View child) {
- child.mRecreateDisplayList = (child.mPrivateFlags & PFLAG_INVALIDATED)
- == PFLAG_INVALIDATED;
+ child.mRecreateDisplayList = (child.mPrivateFlags & PFLAG_INVALIDATED) != 0;
child.mPrivateFlags &= ~PFLAG_INVALIDATED;
- child.getDisplayList();
+ child.updateDisplayListIfDirty();
child.mRecreateDisplayList = false;
}
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 4158340..fda6e63 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2322,10 +2322,8 @@ public final class ViewRootImpl implements ViewParent,
* @hide
*/
void outputDisplayList(View view) {
- RenderNode renderNode = view.getDisplayList();
- if (renderNode != null) {
- renderNode.output();
- }
+ RenderNode renderNode = view.updateDisplayListIfDirty();
+ renderNode.output();
}
/**