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 0 : class SkScanClipper {
17 : public:
18 : SkScanClipper(SkBlitter* blitter, const SkRegion* clip, const SkIRect& bounds);
19 :
20 0 : SkBlitter* getBlitter() const { return fBlitter; }
21 0 : 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 :
|