aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkColorMatrixFilter.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-01-11 12:34:04 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-11 12:34:04 -0800
commit0daf5dd7fc682c939325e16cac6f8aa2e1295060 (patch)
tree9ce9e7832ff5b651bde6a762d4553cd12de13373 /src/effects/SkColorMatrixFilter.cpp
parent639475e375b7e62277ac5e5b96eadeaaa1afcddc (diff)
move declaration of CreateLightingFilter into SkColorMatrixFilter
Diffstat (limited to 'src/effects/SkColorMatrixFilter.cpp')
-rw-r--r--src/effects/SkColorMatrixFilter.cpp29
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);
+}