1
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#ifndef SkRasterizer_DEFINED
11#define SkRasterizer_DEFINED
12
13#include "SkFlattenable.h"
14#include "SkMask.h"
15
16class SkMaskFilter;
17class SkMatrix;
18class SkPath;
19struct SkIRect;
20
21class SK_API SkRasterizer : public SkFlattenable {
22public:
23    SK_DECLARE_INST_COUNT(SkRasterizer)
24
25    SkRasterizer() {}
26
27    /** Turn the path into a mask, respecting the specified local->device matrix.
28    */
29    bool rasterize(const SkPath& path, const SkMatrix& matrix,
30                   const SkIRect* clipBounds, SkMaskFilter* filter,
31                   SkMask* mask, SkMask::CreateMode mode) const;
32
33    SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
34
35protected:
36    SkRasterizer(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
37
38    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
39                             const SkIRect* clipBounds,
40                             SkMask* mask, SkMask::CreateMode mode) const;
41
42private:
43    typedef SkFlattenable INHERITED;
44};
45
46#endif
47