diff options
Diffstat (limited to 'libs/hwui/CanvasTransform.cpp')
-rw-r--r-- | libs/hwui/CanvasTransform.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/hwui/CanvasTransform.cpp b/libs/hwui/CanvasTransform.cpp index 9d03ce5252a3..d0d24a8738f4 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 makeLight(SkColor color) { } } -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 makeDark(SkColor color) { } } -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 @@ static SkColor transformColor(ColorTransform transform, SkColor color) { } } +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; |