| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkScanPriv.h" | 8 #include "SkScanPriv.h" |
| 9 #include "SkBlitter.h" | 9 #include "SkBlitter.h" |
| 10 #include "SkEdge.h" | 10 #include "SkEdge.h" |
| (...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 SkRegion finiteClip; | 595 SkRegion finiteClip; |
| 596 if (clip_to_limit(origClip, &finiteClip)) { | 596 if (clip_to_limit(origClip, &finiteClip)) { |
| 597 if (finiteClip.isEmpty()) { | 597 if (finiteClip.isEmpty()) { |
| 598 return; | 598 return; |
| 599 } | 599 } |
| 600 clipPtr = &finiteClip; | 600 clipPtr = &finiteClip; |
| 601 } | 601 } |
| 602 // don't reference "origClip" any more, just use clipPtr | 602 // don't reference "origClip" any more, just use clipPtr |
| 603 | 603 |
| 604 SkIRect ir; | 604 SkIRect ir; |
| 605 path.getBounds().round(&ir); | 605 // We deliberately call dround() instead of round(), since we can't afford t
o generate a |
| 606 // bounds that is tighter than the corresponding SkEdges. The edge code basi
cally converts |
| 607 // the floats to fixed, and then "rounds". If we called round() instead of d
round() here, |
| 608 // we could generate the wrong ir for values like 0.4999997. |
| 609 path.getBounds().dround(&ir); |
| 606 if (ir.isEmpty()) { | 610 if (ir.isEmpty()) { |
| 607 if (path.isInverseFillType()) { | 611 if (path.isInverseFillType()) { |
| 608 blitter->blitRegion(*clipPtr); | 612 blitter->blitRegion(*clipPtr); |
| 609 } | 613 } |
| 610 return; | 614 return; |
| 611 } | 615 } |
| 612 | 616 |
| 613 SkScanClipper clipper(blitter, clipPtr, ir, path.isInverseFillType()); | 617 SkScanClipper clipper(blitter, clipPtr, ir, path.isInverseFillType()); |
| 614 | 618 |
| 615 blitter = clipper.getBlitter(); | 619 blitter = clipper.getBlitter(); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 720 clipRgn = &wrap.getRgn(); | 724 clipRgn = &wrap.getRgn(); |
| 721 blitter = wrap.getBlitter(); | 725 blitter = wrap.getBlitter(); |
| 722 } | 726 } |
| 723 | 727 |
| 724 SkScanClipper clipper(blitter, clipRgn, ir); | 728 SkScanClipper clipper(blitter, clipRgn, ir); |
| 725 blitter = clipper.getBlitter(); | 729 blitter = clipper.getBlitter(); |
| 726 if (NULL != blitter) { | 730 if (NULL != blitter) { |
| 727 sk_fill_triangle(pts, clipper.getClipRect(), blitter, ir); | 731 sk_fill_triangle(pts, clipper.getClipRect(), blitter, ir); |
| 728 } | 732 } |
| 729 } | 733 } |
| OLD | NEW |