Adding force-dark support to RippleDrawable
Add force-dark support to RippleDrawable by modifying the ink color.
Test: manual
Test: atest CanvasOp
Fixes: 186130682
Change-Id: I89eaaf3afa5ec53a74d2d08de8cff6484e55a912
diff --git a/libs/hwui/CanvasTransform.cpp b/libs/hwui/CanvasTransform.cpp
index 9d03ce5..d0d24a8 100644
--- a/libs/hwui/CanvasTransform.cpp
+++ b/libs/hwui/CanvasTransform.cpp
@@ -31,7 +31,7 @@
namespace android::uirenderer {
-static SkColor makeLight(SkColor color) {
+SkColor makeLight(SkColor color) {
Lab lab = sRGBToLab(color);
float invertedL = std::min(110 - lab.L, 100.0f);
if (invertedL > lab.L) {
@@ -42,7 +42,7 @@
}
}
-static SkColor makeDark(SkColor color) {
+SkColor makeDark(SkColor color) {
Lab lab = sRGBToLab(color);
float invertedL = std::min(110 - lab.L, 100.0f);
if (invertedL < lab.L) {
@@ -53,7 +53,7 @@
}
}
-static SkColor transformColor(ColorTransform transform, SkColor color) {
+SkColor transformColor(ColorTransform transform, SkColor color) {
switch (transform) {
case ColorTransform::Light:
return makeLight(color);
@@ -64,6 +64,17 @@
}
}
+SkColor transformColorInverse(ColorTransform transform, SkColor color) {
+ switch (transform) {
+ case ColorTransform::Dark:
+ return makeLight(color);
+ case ColorTransform::Light:
+ return makeDark(color);
+ default:
+ return color;
+ }
+}
+
static void applyColorTransform(ColorTransform transform, SkPaint& paint) {
if (transform == ColorTransform::None) return;