epoger@google.com | ec3ed6a | 2011-07-28 14:26:00 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2006 The Android Open Source Project |
| 3 | * |
| 4 | * Use of this source code is governed by a BSD-style license that can be |
| 5 | * found in the LICENSE file. |
| 6 | */ |
| 7 | |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 8 | #include "SkColorFilter.h" |
tfarina@chromium.org | 883fe7f | 2013-07-16 13:05:27 +0000 | [diff] [blame] | 9 | |
djsollen@google.com | c73dd5c | 2012-08-07 15:54:32 +0000 | [diff] [blame] | 10 | #include "SkFlattenableBuffers.h" |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 11 | #include "SkShader.h" |
reed@google.com | 6b7aee3 | 2011-04-19 18:36:09 +0000 | [diff] [blame] | 12 | #include "SkUnPreMultiply.h" |
robertphillips@google.com | 76f9e93 | 2013-01-15 20:17:47 +0000 | [diff] [blame] | 13 | #include "SkString.h" |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 14 | |
reed@google.com | bada644 | 2012-12-17 20:21:44 +0000 | [diff] [blame] | 15 | bool SkColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) const { |
reed@google.com | 43c50c8 | 2011-04-14 15:50:52 +0000 | [diff] [blame] | 16 | return false; |
| 17 | } |
| 18 | |
reed@google.com | bada644 | 2012-12-17 20:21:44 +0000 | [diff] [blame] | 19 | bool SkColorFilter::asColorMatrix(SkScalar matrix[20]) const { |
senorblanco@chromium.org | e5ff3ce | 2011-12-20 20:58:18 +0000 | [diff] [blame] | 20 | return false; |
| 21 | } |
| 22 | |
bsalomon@google.com | b2ad101 | 2012-10-17 15:00:32 +0000 | [diff] [blame] | 23 | bool SkColorFilter::asComponentTable(SkBitmap*) const { |
reed@google.com | 7191840 | 2012-01-05 17:24:35 +0000 | [diff] [blame] | 24 | return false; |
| 25 | } |
| 26 | |
reed@google.com | bada644 | 2012-12-17 20:21:44 +0000 | [diff] [blame] | 27 | void SkColorFilter::filterSpan16(const uint16_t s[], int count, uint16_t d[]) const { |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 28 | SkASSERT(this->getFlags() & SkColorFilter::kHasFilter16_Flag); |
tomhudson@google.com | 0c00f21 | 2011-12-28 14:59:50 +0000 | [diff] [blame] | 29 | SkDEBUGFAIL("missing implementation of SkColorFilter::filterSpan16"); |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 30 | |
reed@google.com | feb8cc8 | 2011-04-19 20:11:25 +0000 | [diff] [blame] | 31 | if (d != s) { |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 32 | memcpy(d, s, count * sizeof(uint16_t)); |
reed@google.com | feb8cc8 | 2011-04-19 20:11:25 +0000 | [diff] [blame] | 33 | } |
reed@android.com | 8a1c16f | 2008-12-17 15:59:43 +0000 | [diff] [blame] | 34 | } |
| 35 | |
reed@google.com | bada644 | 2012-12-17 20:21:44 +0000 | [diff] [blame] | 36 | SkColor SkColorFilter::filterColor(SkColor c) const { |
reed@google.com | 6b7aee3 | 2011-04-19 18:36:09 +0000 | [diff] [blame] | 37 | SkPMColor dst, src = SkPreMultiplyColor(c); |
| 38 | this->filterSpan(&src, 1, &dst); |
| 39 | return SkUnPreMultiply::PMColorToColor(dst); |
| 40 | } |
| 41 | |
bsalomon@google.com | 0ac6af4 | 2013-01-16 15:16:18 +0000 | [diff] [blame] | 42 | GrEffectRef* SkColorFilter::asNewEffect(GrContext*) const { |
bsalomon@google.com | 67e78c9 | 2012-10-17 13:36:14 +0000 | [diff] [blame] | 43 | return NULL; |
| 44 | } |