diff options
author | John Reck <jreck@google.com> | 2014-06-17 16:18:09 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-06-18 07:19:50 -0700 |
commit | ce9f308063cc2bc7851f3f58c881da8a7271eecc (patch) | |
tree | f153d877f331bd2d20e43b87aeafb0e531bff941 | |
parent | 4193730ad8d3c17f807a6b2f7df16510491a3432 (diff) |
Fix dirty calculation for layer updates
Bug: 15682142
Defer early return of alpha <= 0 for damage accumulation until
popTransform() so that layer updates will be performed regardless
of alpha
Change-Id: Ifb94dd3ed2d96d610e6f2f3071933903016273a5
-rw-r--r-- | libs/hwui/DamageAccumulator.cpp | 3 | ||||
-rw-r--r-- | libs/hwui/RenderNode.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/libs/hwui/DamageAccumulator.cpp b/libs/hwui/DamageAccumulator.cpp index 77d16ab8d452..8b32c40600eb 100644 --- a/libs/hwui/DamageAccumulator.cpp +++ b/libs/hwui/DamageAccumulator.cpp @@ -170,6 +170,9 @@ void DamageAccumulator::applyRenderNodeTransform(DirtyStack* frame) { } const RenderProperties& props = frame->renderNode->properties(); + if (props.getAlpha() <= 0) { + return; + } // Perform clipping if (props.getClipDamageToBounds() && !frame->pendingDirty.isEmpty()) { diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index fc51170cced6..05f4edf6e75e 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -117,7 +117,7 @@ void RenderNode::prepareTree(TreeInfo& info) { } void RenderNode::damageSelf(TreeInfo& info) { - if (isRenderable() && properties().getAlpha() > 0) { + if (isRenderable()) { if (properties().getClipDamageToBounds()) { info.damageAccumulator->dirty(0, 0, properties().getWidth(), properties().getHeight()); } else { |