SkRasterizer.h revision 4200dfe9c1a2c0e99a7155a63fbffb01e9d1fd28
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,
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                   SkMask* mask, SkMask::CreateMode mode);
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
3454924243c1b65b3ee6d8fa064b50a9b1bb2a19a5djsollen@google.com    SkRasterizer(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                             const SkIRect* clipBounds,
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com                             SkMask* mask, SkMask::CreateMode mode);
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    typedef SkFlattenable INHERITED;
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
45