SkScanPriv.h revision ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e
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 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, 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 36void sk_blit_above(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 37void sk_blit_below(SkBlitter*, const SkIRect& avoid, const SkRegion& clip); 38 39#endif 40 41