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 16 class SkMaskFilter; 17 class SkMatrix; 18 class SkPath; 19 struct SkIRect; 20 21 class SK_API SkRasterizer : public SkFlattenable { 22 public: 23 SK_DECLARE_INST_COUNT(SkRasterizer) 24 25 SkRasterizer() {} 26 27 /** Turn the path into a mask, respecting the specified local->device matrix. 28 */ 29 bool rasterize(const SkPath& path, const SkMatrix& matrix, 30 const SkIRect* clipBounds, SkMaskFilter* filter, 31 SkMask* mask, SkMask::CreateMode mode) const; 32 33 SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer) 34 35 protected: 36 SkRasterizer(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} 37 38 virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix, 39 const SkIRect* clipBounds, 40 SkMask* mask, SkMask::CreateMode mode) const; 41 42 private: 43 typedef SkFlattenable INHERITED; 44 }; 45 46 #endif 47