From 0daf5dd7fc682c939325e16cac6f8aa2e1295060 Mon Sep 17 00:00:00 2001 From: reed Date: Mon, 11 Jan 2016 12:34:04 -0800 Subject: 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 --- src/effects/SkColorMatrixFilter.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/effects/SkColorMatrixFilter.cpp') 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); +} -- cgit v1.2.3