diff options
author | 2017-05-04 10:57:40 -0400 | |
---|---|---|
committer | 2017-05-04 15:21:39 +0000 | |
commit | b9641bd55a8f63757a63d9302755feb55d2e9502 (patch) | |
tree | 21cf4570aea3d430e9e5ef721d7e19f1b700dc5d /src/core | |
parent | 342a9fa8e1c0bccff0d2d1569042bce29f2bbe85 (diff) |
force all colorfilters to implement 4f
high-contrast gms differ at most by 1 bit
Bug: skia:
Change-Id: I1308bd105020ea3cd5a30fd3dd322ed134fb5ed5
Reviewed-on: https://skia-review.googlesource.com/15249
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkColorFilter.cpp | 18 | ||||
-rw-r--r-- | src/core/SkPM4f.h | 9 |
2 files changed, 9 insertions, 18 deletions
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp index b82808d585..166d772668 100644 --- a/src/core/SkColorFilter.cpp +++ b/src/core/SkColorFilter.cpp @@ -50,24 +50,6 @@ bool SkColorFilter::onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAllo return false; } -void SkColorFilter::filterSpan4f(const SkPM4f src[], int count, SkPM4f result[]) const { - const int N = 128; - SkPMColor tmp[N]; - while (count > 0) { - int n = SkTMin(count, N); - for (int i = 0; i < n; ++i) { - tmp[i] = src[i].toPMColor(); - } - this->filterSpan(tmp, n, tmp); - for (int i = 0; i < n; ++i) { - result[i] = SkPM4f::FromPMColor(tmp[i]); - } - src += n; - result += n; - count -= n; - } -} - SkColor SkColorFilter::filterColor(SkColor c) const { SkPMColor dst, src = SkPreMultiplyColor(c); this->filterSpan(&src, 1, &dst); diff --git a/src/core/SkPM4f.h b/src/core/SkPM4f.h index f983101f41..ab2258b328 100644 --- a/src/core/SkPM4f.h +++ b/src/core/SkPM4f.h @@ -37,6 +37,15 @@ struct SkPM4f { float b() const { return fVec[B]; } float a() const { return fVec[A]; } + static SkPM4f FromPremulRGBA(float r, float g, float b, float a) { + SkPM4f p; + p.fVec[R] = r; + p.fVec[G] = g; + p.fVec[B] = b; + p.fVec[A] = a; + return p; + } + static SkPM4f From4f(const Sk4f& x) { SkPM4f pm; x.store(pm.fVec); |