blob: ed2df88d218f0b34709163bab15e9921d93a367c [file] [log] [blame]
reed@android.com8a1c16f2008-12-17 15:59:43 +00001#include "SkPaintFlagsDrawFilter.h"
2#include "SkPaint.h"
3
4SkPaintFlagsDrawFilter::SkPaintFlagsDrawFilter(uint32_t clearFlags,
5 uint32_t setFlags)
6{
7 fClearFlags = SkToU16(clearFlags & SkPaint::kAllFlags);
8 fSetFlags = SkToU16(setFlags & SkPaint::kAllFlags);
9}
10
11bool SkPaintFlagsDrawFilter::filter(SkCanvas*, SkPaint* paint, Type)
12{
13 fPrevFlags = paint->getFlags();
14 paint->setFlags((fPrevFlags & ~fClearFlags) | fSetFlags);
15 return true;
16}
17
18void SkPaintFlagsDrawFilter::restore(SkCanvas*, SkPaint* paint, Type)
19{
20 paint->setFlags(fPrevFlags);
21}
22