diff options
author | reed <reed@google.com> | 2016-01-11 12:34:04 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-11 12:34:04 -0800 |
commit | 0daf5dd7fc682c939325e16cac6f8aa2e1295060 (patch) | |
tree | 9ce9e7832ff5b651bde6a762d4553cd12de13373 /src/effects/SkColorMatrixFilter.cpp | |
parent | 639475e375b7e62277ac5e5b96eadeaaa1afcddc (diff) |
move declaration of CreateLightingFilter into SkColorMatrixFilter
BUG=skia:4791
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1574023002
Review URL: https://codereview.chromium.org/1574023002
Diffstat (limited to 'src/effects/SkColorMatrixFilter.cpp')
-rw-r--r-- | src/effects/SkColorMatrixFilter.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp index 3cc6e2c0c0..f24670e4bc 100644 --- a/src/effects/SkColorMatrixFilter.cpp +++ b/src/effects/SkColorMatrixFilter.cpp @@ -338,3 +338,32 @@ void SkColorMatrixFilter::toString(SkString* str) const { str->append(")"); } #endif + +/////////////////////////////////////////////////////////////////////////////// + +static SkScalar byte_to_scale(U8CPU byte) { + if (0xFF == byte) { + // want to get this exact + return 1; + } else { + return byte * 0.00392156862745f; + } +} + +SkColorFilter* SkColorMatrixFilter::CreateLightingFilter(SkColor mul, SkColor add) { + SkColorMatrix matrix; + matrix.setScale(byte_to_scale(SkColorGetR(mul)), + byte_to_scale(SkColorGetG(mul)), + byte_to_scale(SkColorGetB(mul)), + 1); + matrix.postTranslate(SkIntToScalar(SkColorGetR(add)), + SkIntToScalar(SkColorGetG(add)), + SkIntToScalar(SkColorGetB(add)), + 0); + return SkColorMatrixFilter::Create(matrix); +} + +// DEPRECTED -- remove this when chrome/android stop calling it +SkColorFilter* SkColorFilter::CreateLightingFilter(SkColor mul, SkColor add) { + return SkColorMatrixFilter::CreateLightingFilter(mul, add); +} |