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