11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */
80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkRasterizer_DEFINED
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkRasterizer_DEFINED
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkFlattenable.h"
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkMask.h"
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkMaskFilter;
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkMatrix;
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkPath;
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectstruct SkIRect;
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkRasterizer : public SkFlattenable {
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic:
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkRasterizer() {}
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    /** Turn the path into a mask, respecting the specified local->device matrix.
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    */
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    bool rasterize(const SkPath& path, const SkMatrix& matrix,
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                   const SkIRect* clipBounds, SkMaskFilter* filter,
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                   SkMask* mask, SkMask::CreateMode mode);
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE {}
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected:
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkRasterizer(SkFlattenableReadBuffer&);
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             const SkIRect* clipBounds,
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                             SkMask* mask, SkMask::CreateMode mode);
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate:
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    typedef SkFlattenable INHERITED;
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
44