summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderNode.cpp
diff options
context:
space:
mode:
author Tyler Freeman <fuego@google.com> 2023-11-08 17:26:20 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-11-08 17:26:20 +0000
commit898fd94fb8c571a623ca047fd4c0b2a0de62fa33 (patch)
tree5c7b9949792a089fe8d5f001cf469fa799a3dd5d /libs/hwui/RenderNode.cpp
parentf527647494c2fdab2688a4b8265c3c3e25205b1e (diff)
parent335677493d7cf19bf8bcbe9d61b902562c2c6b0a (diff)
Merge changes from topic "forcedark-ignoreoutoutrendernode" into main
* changes: fix(force invert): don't let devs opt-out of force dark when force invert is on refactor(force invert): use enum/intdef for force dark type in setForceDark() functions
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r--libs/hwui/RenderNode.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index d28bb499c907..3e131bc44d39 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -40,6 +40,7 @@
#ifdef __ANDROID__
#include "include/gpu/ganesh/SkImageGanesh.h"
#endif
+#include "utils/ForceDark.h"
#include "utils/MathUtils.h"
#include "utils/StringUtils.h"
@@ -403,16 +404,21 @@ void RenderNode::syncDisplayList(TreeObserver& observer, TreeInfo* info) {
deleteDisplayList(observer, info);
mDisplayList = std::move(mStagingDisplayList);
if (mDisplayList) {
- WebViewSyncData syncData {
- .applyForceDark = info && !info->disableForceDark
- };
+ WebViewSyncData syncData{.applyForceDark = shouldEnableForceDark(info)};
mDisplayList.syncContents(syncData);
handleForceDark(info);
}
}
+inline bool RenderNode::shouldEnableForceDark(TreeInfo* info) {
+ return CC_UNLIKELY(
+ info &&
+ (!info->disableForceDark ||
+ info->forceDarkType == android::uirenderer::ForceDarkType::FORCE_INVERT_COLOR_DARK));
+}
+
void RenderNode::handleForceDark(android::uirenderer::TreeInfo *info) {
- if (CC_LIKELY(!info || info->disableForceDark)) {
+ if (!shouldEnableForceDark(info)) {
return;
}
auto usage = usageHint();