diff options
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/SkColorFilters.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/effects/SkColorFilters.cpp b/src/effects/SkColorFilters.cpp index d4723ec18f..8bcd0ebc5d 100644 --- a/src/effects/SkColorFilters.cpp +++ b/src/effects/SkColorFilters.cpp @@ -27,18 +27,7 @@ bool SkModeColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) cons } uint32_t SkModeColorFilter::getFlags() const { - uint32_t flags = 0; - switch (fMode) { - case SkXfermode::kDst_Mode: //!< [Da, Dc] - case SkXfermode::kSrcATop_Mode: //!< [Da, Sc * Da + (1 - Sa) * Dc] - flags |= kAlphaUnchanged_Flag; - default: - break; - } - if (fProc16) { - flags |= kHasFilter16_Flag; - } - return flags; + return fProc16 ? (kAlphaUnchanged_Flag | kHasFilter16_Flag) : 0; } void SkModeColorFilter::filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) const { @@ -401,7 +390,7 @@ public: uint32_t getFlags() const SK_OVERRIDE { if (SkGetPackedA32(this->getPMColor()) == 0xFF) { - return kHasFilter16_Flag; + return kAlphaUnchanged_Flag | kHasFilter16_Flag; } else { return 0; } @@ -431,7 +420,7 @@ public: uint32_t getFlags() const SK_OVERRIDE { if (SkGetPackedA32(this->getPMColor()) == 0xFF) { - return kHasFilter16_Flag; + return kAlphaUnchanged_Flag | kHasFilter16_Flag; } else { return 0; } |