Home | History | Annotate | Download | only in core
      1 /* libs/graphics/sgl/SkScanPriv.h
      2 **
      3 ** Copyright 2006, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 #ifndef SkScanPriv_DEFINED
     19 #define SkScanPriv_DEFINED
     20 
     21 #include "SkScan.h"
     22 #include "SkBlitter.h"
     23 
     24 class SkScanClipper {
     25 public:
     26     SkScanClipper(SkBlitter* blitter, const SkRegion* clip, const SkIRect& bounds);
     27 
     28     SkBlitter*      getBlitter() const { return fBlitter; }
     29     const SkIRect*  getClipRect() const { return fClipRect; }
     30 
     31 private:
     32     SkRectClipBlitter   fRectBlitter;
     33     SkRgnClipBlitter    fRgnBlitter;
     34     SkBlitter*          fBlitter;
     35     const SkIRect*      fClipRect;
     36 };
     37 
     38 // clipRect == null means path is entirely inside the clip
     39 void sk_fill_path(const SkPath& path, const SkIRect* clipRect,
     40                   SkBlitter* blitter, int start_y, int stop_y, int shiftEdgesUp,
     41                   const SkRegion& clipRgn);
     42 
     43 // blit the rects above and below avoid, clipped to clp
     44 void sk_blit_above_and_below(SkBlitter* blitter, const SkIRect& avoid,
     45                              const SkRegion& clip);
     46 
     47 #endif
     48 
     49