blob: 82402a74548e2a13c09897eb90c3ea2591f77841 [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:
reed@google.com5ee64912012-06-11 17:30:33 +000018 SkScanClipper(SkBlitter* blitter, const SkRegion* clip, const SkIRect& bounds,
19 bool skipRejectTest = false);
reed@android.com8a1c16f2008-12-17 15:59:43 +000020
21 SkBlitter* getBlitter() const { return fBlitter; }
22 const SkIRect* getClipRect() const { return fClipRect; }
23
24private:
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
32void sk_fill_path(const SkPath& path, const SkIRect* clipRect,
reed@android.comdca6a562010-02-22 16:05:48 +000033 SkBlitter* blitter, int start_y, int stop_y, int shiftEdgesUp,
reed@android.com8a1c16f2008-12-17 15:59:43 +000034 const SkRegion& clipRgn);
35
reed@google.com55b6b582011-03-02 15:58:18 +000036// blit the rects above and below avoid, clipped to clip
37void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip);
38void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip);
reed@android.com8a1c16f2008-12-17 15:59:43 +000039
40#endif
41