1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/*
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project
48a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com *
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */
88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
9ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkRasterizer_DEFINED
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkRasterizer_DEFINED
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkFlattenable.h"
148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkMask.h"
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkMaskFilter;
178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkMatrix;
188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkPath;
198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comstruct SkIRect;
208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
214200dfe9c1a2c0e99a7155a63fbffb01e9d1fd28bungeman@google.comclass SK_API SkRasterizer : public SkFlattenable {
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic:
230456e0b7b85060e9b9597ce414c4c2b19aff4f58robertphillips@google.com    SK_DECLARE_INST_COUNT(SkRasterizer)
240456e0b7b85060e9b9597ce414c4c2b19aff4f58robertphillips@google.com
258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    /** Turn the path into a mask, respecting the specified local->device matrix.
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    */
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    bool rasterize(const SkPath& path, const SkMatrix& matrix,
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                   const SkIRect* clipBounds, SkMaskFilter* filter,
29fdba4041c350b72791a1844ff0bc0af28cbb4199reed@google.com                   SkMask* mask, SkMask::CreateMode mode) const;
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
31c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org    SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
32c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
34f792a1b20747f769b28906a4b00fd67691ce8d0bcommit-bot@chromium.org    SkRasterizer() {}
358b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org    SkRasterizer(SkReadBuffer& buffer) : INHERITED(buffer) {}
368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                             const SkIRect* clipBounds,
39fdba4041c350b72791a1844ff0bc0af28cbb4199reed@google.com                             SkMask* mask, SkMask::CreateMode mode) const;
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    typedef SkFlattenable INHERITED;
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
46