180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/*
280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2011 Google Inc.
380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be
580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file.
680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */
780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPaintFlagsDrawFilter.h"
980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPaint.h"
1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkPaintFlagsDrawFilter::SkPaintFlagsDrawFilter(uint32_t clearFlags,
1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                                               uint32_t setFlags) {
1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    fClearFlags = SkToU16(clearFlags & SkPaint::kAllFlags);
1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    fSetFlags = SkToU16(setFlags & SkPaint::kAllFlags);
1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
17363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenbergerbool SkPaintFlagsDrawFilter::filter(SkPaint* paint, Type) {
1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    paint->setFlags((paint->getFlags() & ~fClearFlags) | fSetFlags);
19363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger    return true;
2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
21