| #include "SkPaintFlagsDrawFilter.h" |
| #include "SkPaint.h" |
| |
| SkPaintFlagsDrawFilter::SkPaintFlagsDrawFilter(uint32_t clearFlags, |
| uint32_t setFlags) |
| { |
| fClearFlags = SkToU16(clearFlags & SkPaint::kAllFlags); |
| fSetFlags = SkToU16(setFlags & SkPaint::kAllFlags); |
| } |
| |
| bool SkPaintFlagsDrawFilter::filter(SkCanvas*, SkPaint* paint, Type) |
| { |
| fPrevFlags = paint->getFlags(); |
| paint->setFlags((fPrevFlags & ~fClearFlags) | fSetFlags); |
| return true; |
| } |
| |
| void SkPaintFlagsDrawFilter::restore(SkCanvas*, SkPaint* paint, Type) |
| { |
| paint->setFlags(fPrevFlags); |
| } |
| |