blob: 96ed5ab8fbfae6d3305bde018088c87baad383d2 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkScanPriv_DEFINED
11#define SkScanPriv_DEFINED
12
13#include "SkScan.h"
14#include "SkBlitter.h"
15
16class SkScanClipper {
17public:
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
23private:
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
31void sk_fill_path(const SkPath& path, const SkIRect* clipRect,
reed@android.comdca6a562010-02-22 16:05:48 +000032 SkBlitter* blitter, int start_y, int stop_y, int shiftEdgesUp,
reed@android.com8a1c16f2008-12-17 15:59:43 +000033 const SkRegion& clipRgn);
34
reed@google.com55b6b582011-03-02 15:58:18 +000035// blit the rects above and below avoid, clipped to clip
36void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip);
37void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip);
reed@android.com8a1c16f2008-12-17 15:59:43 +000038
39#endif
40