|
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 |
|
21 SkBlitter* getBlitter() const { return fBlitter; } |
|
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 |