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