diff options
Diffstat (limited to 'src/core/SkModeColorFilter.cpp')
-rw-r--r-- | src/core/SkModeColorFilter.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/core/SkModeColorFilter.cpp b/src/core/SkModeColorFilter.cpp index edf38d269f..7e93747f10 100644 --- a/src/core/SkModeColorFilter.cpp +++ b/src/core/SkModeColorFilter.cpp @@ -24,6 +24,13 @@ ////////////////////////////////////////////////////////////////////////////////////////////////// +SkModeColorFilter::SkModeColorFilter(SkColor color, SkBlendMode mode) { + fColor = color; + fMode = mode; + // cache + fPMColor = SkPreMultiplyColor(fColor); +} + #ifndef SK_IGNORE_TO_STRING void SkModeColorFilter::toString(SkString* str) const { str->append("SkModeColorFilter: color: 0x"); @@ -57,7 +64,7 @@ uint32_t SkModeColorFilter::getFlags() const { void SkModeColorFilter::filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) const { SkPMColor color = fPMColor; - SkXfermodeProc proc = fProc; + SkXfermodeProc proc = SkXfermode::GetProc(fMode); for (int i = 0; i < count; i++) { result[i] = proc(color, shader[i]); @@ -69,12 +76,6 @@ void SkModeColorFilter::flatten(SkWriteBuffer& buffer) const { buffer.writeUInt((int)fMode); } -void SkModeColorFilter::updateCache() { - fPMColor = SkPreMultiplyColor(fColor); - fProc = SkXfermode::GetProc(fMode); - fPMColor4f = SkColor4f::FromColor(fColor).premul(); -} - sk_sp<SkFlattenable> SkModeColorFilter::CreateProc(SkReadBuffer& buffer) { SkColor color = buffer.readColor(); SkBlendMode mode = (SkBlendMode)buffer.readUInt(); |