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    /** Turn the path into a mask, respecting the specified local->device matrix.
26    */
27    bool rasterize(const SkPath& path, const SkMatrix& matrix,
28                   const SkIRect* clipBounds, SkMaskFilter* filter,
29                   SkMask* mask, SkMask::CreateMode mode) const;
30
31    SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
32
33protected:
34    SkRasterizer() {}
35    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
36                             const SkIRect* clipBounds,
37                             SkMask* mask, SkMask::CreateMode mode) const;
38
39private:
40    typedef SkFlattenable INHERITED;
41};
42
43#endif
44