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 SkRasterizer : public SkFlattenable {
22public:
23    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);
30
31    virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE {}
32protected:
33    SkRasterizer(SkFlattenableReadBuffer&);
34
35    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
36                             const SkIRect* clipBounds,
37                             SkMask* mask, SkMask::CreateMode mode);
38
39private:
40    typedef SkFlattenable INHERITED;
41};
42
43#endif
44