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 
16 class SkMaskFilter;
17 class SkMatrix;
18 class SkPath;
19 struct SkIRect;
20 
21 class SK_API SkRasterizer : public SkFlattenable {
22 public:
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 
SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)31     SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
32 
33 protected:
34     SkRasterizer() {}
35     virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
36                              const SkIRect* clipBounds,
37                              SkMask* mask, SkMask::CreateMode mode) const;
38 
39 private:
40     typedef SkFlattenable INHERITED;
41 };
42 
43 #endif
44