SkRasterizer.h revision c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cf
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    SkRasterizer() {}
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    /** Turn the path into a mask, respecting the specified local->device matrix.
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    */
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    bool rasterize(const SkPath& path, const SkMatrix& matrix,
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                   const SkIRect* clipBounds, SkMaskFilter* filter,
31fdba4041c350b72791a1844ff0bc0af28cbb4199reed@google.com                   SkMask* mask, SkMask::CreateMode mode) const;
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
33c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org    SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
34c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
3654924243c1b65b3ee6d8fa064b50a9b1bb2a19a5djsollen@google.com    SkRasterizer(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                             const SkIRect* clipBounds,
40fdba4041c350b72791a1844ff0bc0af28cbb4199reed@google.com                             SkMask* mask, SkMask::CreateMode mode) const;
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    typedef SkFlattenable INHERITED;
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
47