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 SkScanPriv_DEFINED 11 #define SkScanPriv_DEFINED 12 13 #include "SkScan.h" 14 #include "SkBlitter.h" 15 16 class SkScanClipper { 17 public: 18 SkScanClipper(SkBlitter* blitter, const SkRegion* clip, const SkIRect& bounds); 19 20 SkBlitter* getBlitter() const { return fBlitter; } 21 const SkIRect* getClipRect() const { return fClipRect; } 22 23 private: 24 SkRectClipBlitter fRectBlitter; 25 SkRgnClipBlitter fRgnBlitter; 26 SkBlitter* fBlitter; 27 const SkIRect* fClipRect; 28 }; 29 30 // clipRect == null means path is entirely inside the clip 31 void sk_fill_path(const SkPath& path, const SkIRect* clipRect, 32 SkBlitter* blitter, int start_y, int stop_y, int shiftEdgesUp, 33 const SkRegion& clipRgn); 34 35 // blit the rects above and below avoid, clipped to clip 36 void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 37 void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 38 39 #endif 40 41