diff options
| author | 2021-04-07 17:35:45 +0000 | |
|---|---|---|
| committer | 2021-04-07 17:35:45 +0000 | |
| commit | 779a8514b7de6cf1ced554f30ebea65e35396bbe (patch) | |
| tree | dde02f1c6c99c4346febd02abb65c1a95983917f /libs/hwui/RenderNode.cpp | |
| parent | 779f120a91c38b718f97aeb027b26b24cbd86672 (diff) | |
| parent | 2dc632aee35ff3ae39c23baea8d080583b5bfe1e (diff) | |
Merge "Holepunch layers for SurfaceView" into sc-dev
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
| -rw-r--r-- | libs/hwui/RenderNode.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index f5b2675c7fe6..e9eae3d14760 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -255,15 +255,19 @@ void RenderNode::prepareTreeImpl(TreeObserver& observer, TreeInfo& info, bool fu if (mDisplayList) { info.out.hasFunctors |= mDisplayList.hasFunctor(); + mHasHolePunches = mDisplayList.hasHolePunches(); bool isDirty = mDisplayList.prepareListAndChildren( observer, info, childFunctorsNeedLayer, - [](RenderNode* child, TreeObserver& observer, TreeInfo& info, - bool functorsNeedLayer) { + [this](RenderNode* child, TreeObserver& observer, TreeInfo& info, + bool functorsNeedLayer) { child->prepareTreeImpl(observer, info, functorsNeedLayer); + mHasHolePunches |= child->hasHolePunches(); }); if (isDirty) { damageSelf(info); } + } else { + mHasHolePunches = false; } pushLayerUpdate(info); |