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