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 16class SkScanClipper { 17public: 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 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, 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 37void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 38void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 39 40#endif 41