diff options
author | reed <reed@google.com> | 2015-03-24 06:35:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-24 06:35:23 -0700 |
commit | 62a320c8d444cd04e4f2952c269ea4cbd58dee64 (patch) | |
tree | 51c4115e1554580dd1def34ba59a406e2c6d8a71 /src/effects/SkColorFilters.cpp | |
parent | 470fa6f74b8ed08d85af463d5b3ef6f19ed6522a (diff) |
Revert of Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #1 id:1 of https://codereview.chromium.org/1022673007/)
Reason for revert:
fix for chrome has landed...
Original issue's description:
> Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #2 id:20001 of https://codereview.chromium.org/1015533011/)
>
> Reason for revert:
> skia/ext/benchmarking_canvas.cc references HasFilter16 :(
>
> Original issue's description:
> > remove colorfilter native-565 support. complicating w/ no real value.
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/2151353d161fe389cdc0db62cfe1932c7680f710
>
> TBR=reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/92b47c49016749249ff8521e424c4373b4a74241
TBR=reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1016103004
Diffstat (limited to 'src/effects/SkColorFilters.cpp')
-rw-r--r-- | src/effects/SkColorFilters.cpp | 54 |
1 files changed, 10 insertions, 44 deletions
diff --git a/src/effects/SkColorFilters.cpp b/src/effects/SkColorFilters.cpp index 8bcd0ebc5d..8c021e452b 100644 --- a/src/effects/SkColorFilters.cpp +++ b/src/effects/SkColorFilters.cpp @@ -27,7 +27,14 @@ bool SkModeColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) cons } uint32_t SkModeColorFilter::getFlags() const { - return fProc16 ? (kAlphaUnchanged_Flag | kHasFilter16_Flag) : 0; + switch (fMode) { + case SkXfermode::kDst_Mode: //!< [Da, Dc] + case SkXfermode::kSrcATop_Mode: //!< [Da, Sc * Da + (1 - Sa) * Dc] + return kAlphaUnchanged_Flag; + default: + break; + } + return 0; } void SkModeColorFilter::filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) const { @@ -39,16 +46,6 @@ void SkModeColorFilter::filterSpan(const SkPMColor shader[], int count, SkPMColo } } -void SkModeColorFilter::filterSpan16(const uint16_t shader[], int count, uint16_t result[]) const { - SkASSERT(this->getFlags() & kHasFilter16_Flag); - - SkPMColor color = fPMColor; - SkXfermodeProc16 proc16 = fProc16; - - for (int i = 0; i < count; i++) { - result[i] = proc16(color, shader[i]); - } -} void SkModeColorFilter::flatten(SkWriteBuffer& buffer) const { buffer.writeColor(fColor); buffer.writeUInt(fMode); @@ -57,7 +54,6 @@ void SkModeColorFilter::flatten(SkWriteBuffer& buffer) const { void SkModeColorFilter::updateCache() { fPMColor = SkPreMultiplyColor(fColor); fProc = SkXfermode::GetProc(fMode); - fProc16 = SkXfermode::GetProc16(fMode, fColor); } SkFlattenable* SkModeColorFilter::CreateProc(SkReadBuffer& buffer) { @@ -388,25 +384,10 @@ class Src_SkModeColorFilter : public SkModeColorFilter { public: Src_SkModeColorFilter(SkColor color) : INHERITED(color, SkXfermode::kSrc_Mode) {} - uint32_t getFlags() const SK_OVERRIDE { - if (SkGetPackedA32(this->getPMColor()) == 0xFF) { - return kAlphaUnchanged_Flag | kHasFilter16_Flag; - } else { - return 0; - } - } - - virtual void filterSpan(const SkPMColor shader[], int count, - SkPMColor result[]) const SK_OVERRIDE { + void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) const SK_OVERRIDE { sk_memset32(result, this->getPMColor(), count); } - virtual void filterSpan16(const uint16_t shader[], int count, - uint16_t result[]) const SK_OVERRIDE { - SkASSERT(this->getFlags() & kHasFilter16_Flag); - sk_memset16(result, SkPixel32ToPixel16(this->getPMColor()), count); - } - private: typedef SkModeColorFilter INHERITED; }; @@ -418,25 +399,10 @@ public: fColor32Proc = SkBlitRow::ColorProcFactory(); } - uint32_t getFlags() const SK_OVERRIDE { - if (SkGetPackedA32(this->getPMColor()) == 0xFF) { - return kAlphaUnchanged_Flag | kHasFilter16_Flag; - } else { - return 0; - } - } - - virtual void filterSpan(const SkPMColor shader[], int count, - SkPMColor result[]) const SK_OVERRIDE { + void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) const SK_OVERRIDE { fColor32Proc(result, shader, count, this->getPMColor()); } - virtual void filterSpan16(const uint16_t shader[], int count, - uint16_t result[]) const SK_OVERRIDE { - SkASSERT(this->getFlags() & kHasFilter16_Flag); - sk_memset16(result, SkPixel32ToPixel16(this->getPMColor()), count); - } - private: SkBlitRow::ColorProc fColor32Proc; |