diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-09-24 19:54:33 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-09-24 19:54:33 +0000 |
commit | e64d55010f20caad124525847562535f2674bf09 (patch) | |
tree | c5aa7c215bd8c3e14fb2520426a91d882f0c8511 /libs/hwui/RenderNode.cpp | |
parent | 4dc09a4b82b8bd063105d1376c0c8b5cd95d7ab3 (diff) | |
parent | 1423e1331fa8b97d36950d143560a332b6c6bed7 (diff) |
Merge "Create plumbing for disabling force-dark"
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r-- | libs/hwui/RenderNode.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index 06dbb2410a12..d9a7cc3a575f 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -112,7 +112,9 @@ void RenderNode::prepareTree(TreeInfo& info) { LOG_ALWAYS_FATAL_IF(!info.damageAccumulator, "DamageAccumulator missing"); MarkAndSweepRemoved observer(&info); + const int before = info.disableForceDark; prepareTreeImpl(observer, info, false); + LOG_ALWAYS_FATAL_IF(before != info.disableForceDark, "Mis-matched force dark"); } void RenderNode::addAnimator(const sp<BaseRenderNodeAnimator>& animator) { @@ -195,6 +197,11 @@ void RenderNode::prepareTreeImpl(TreeObserver& observer, TreeInfo& info, bool fu if (info.mode == TreeInfo::MODE_FULL) { pushStagingPropertiesChanges(info); } + + if (!mProperties.getAllowForceDark()) { + info.disableForceDark++; + } + uint32_t animatorDirtyMask = 0; if (CC_LIKELY(info.runAnimations)) { animatorDirtyMask = mAnimatorManager.animate(info); @@ -232,6 +239,9 @@ void RenderNode::prepareTreeImpl(TreeObserver& observer, TreeInfo& info, bool fu } pushLayerUpdate(info); + if (!mProperties.getAllowForceDark()) { + info.disableForceDark--; + } info.damageAccumulator->popTransform(); } @@ -273,7 +283,7 @@ void RenderNode::syncDisplayList(TreeObserver& observer, TreeInfo* info) { if (mDisplayList) { mDisplayList->syncContents(); - if (CC_UNLIKELY(Properties::forceDarkMode)) { + if (CC_UNLIKELY(info && !info->disableForceDark)) { auto usage = usageHint(); if (mDisplayList->hasText()) { usage = UsageHint::Foreground; |