SkStippleMaskFilter.h revision bd0be25074e53a6d1abc284562568c9745191984
1/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkStippleMaskFilter_DEFINED
9#define SkStippleMaskFilter_DEFINED
10
11#include "SkMaskFilter.h"
12
13/**
14 * Simple MaskFilter that creates a screen door stipple pattern.
15 */
16class SK_API SkStippleMaskFilter : public SkMaskFilter {
17public:
18    static SkStippleMaskFilter* Create() {
19        return SkNEW(SkStippleMaskFilter);
20    }
21
22    virtual bool filterMask(SkMask* dst, const SkMask& src,
23                            const SkMatrix& matrix,
24                            SkIPoint* margin) const SK_OVERRIDE;
25
26    // getFormat is from SkMaskFilter
27    virtual SkMask::Format getFormat() const SK_OVERRIDE {
28        return SkMask::kA8_Format;
29    }
30
31    SK_TO_STRING_OVERRIDE()
32    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkStippleMaskFilter);
33
34protected:
35    SkStippleMaskFilter() : INHERITED() {
36    }
37    explicit SkStippleMaskFilter(SkReadBuffer& buffer)
38        : SkMaskFilter(buffer) {
39    }
40
41private:
42    typedef SkMaskFilter INHERITED;
43};
44
45#endif // SkStippleMaskFilter_DEFINED
46