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 bool skipRejectTest = false); 20 getBlitter()21 SkBlitter* getBlitter() const { return fBlitter; } getClipRect()22 const SkIRect* getClipRect() const { return fClipRect; } 23 24 private: 25 SkRectClipBlitter fRectBlitter; 26 SkRgnClipBlitter fRgnBlitter; 27 SkBlitter* fBlitter; 28 const SkIRect* fClipRect; 29 }; 30 31 // clipRect == null means path is entirely inside the clip 32 void sk_fill_path(const SkPath& path, const SkIRect* clipRect, 33 SkBlitter* blitter, int start_y, int stop_y, int shiftEdgesUp, 34 const SkRegion& clipRgn); 35 36 // blit the rects above and below avoid, clipped to clip 37 void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 38 void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 39 40 #endif 41