| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkScan.h" | 10 #include "SkScan.h" |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 SkScan::FillRect(tmp, clip, blitter); | 370 SkScan::FillRect(tmp, clip, blitter); |
| 371 } | 371 } |
| 372 | 372 |
| 373 void SkScan::HairLine(const SkPoint& p0, const SkPoint& p1, | 373 void SkScan::HairLine(const SkPoint& p0, const SkPoint& p1, |
| 374 const SkRasterClip& clip, SkBlitter* blitter) { | 374 const SkRasterClip& clip, SkBlitter* blitter) { |
| 375 if (clip.isBW()) { | 375 if (clip.isBW()) { |
| 376 HairLineRgn(p0, p1, &clip.bwRgn(), blitter); | 376 HairLineRgn(p0, p1, &clip.bwRgn(), blitter); |
| 377 } else { | 377 } else { |
| 378 const SkRegion* clipRgn = NULL; | 378 const SkRegion* clipRgn = NULL; |
| 379 SkRect r; | 379 SkRect r; |
| 380 SkIRect ir; | |
| 381 r.set(p0.fX, p0.fY, p1.fX, p1.fY); | 380 r.set(p0.fX, p0.fY, p1.fX, p1.fY); |
| 382 r.sort(); | 381 r.sort(); |
| 383 r.inset(-SK_ScalarHalf, -SK_ScalarHalf); | 382 r.inset(-SK_ScalarHalf, -SK_ScalarHalf); |
| 384 r.roundOut(&ir); | |
| 385 | 383 |
| 386 SkAAClipBlitterWrapper wrap; | 384 SkAAClipBlitterWrapper wrap; |
| 387 if (!clip.quickContains(ir)) { | 385 if (!clip.quickContains(r.roundOut())) { |
| 388 wrap.init(clip, blitter); | 386 wrap.init(clip, blitter); |
| 389 blitter = wrap.getBlitter(); | 387 blitter = wrap.getBlitter(); |
| 390 clipRgn = &wrap.getRgn(); | 388 clipRgn = &wrap.getRgn(); |
| 391 } | 389 } |
| 392 HairLineRgn(p0, p1, clipRgn, blitter); | 390 HairLineRgn(p0, p1, clipRgn, blitter); |
| 393 } | 391 } |
| 394 } | 392 } |
| 395 | 393 |
| 396 void SkScan::AntiHairLine(const SkPoint& p0, const SkPoint& p1, | 394 void SkScan::AntiHairLine(const SkPoint& p0, const SkPoint& p1, |
| 397 const SkRasterClip& clip, SkBlitter* blitter) { | 395 const SkRasterClip& clip, SkBlitter* blitter) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 408 | 406 |
| 409 SkAAClipBlitterWrapper wrap; | 407 SkAAClipBlitterWrapper wrap; |
| 410 if (!clip.quickContains(ir)) { | 408 if (!clip.quickContains(ir)) { |
| 411 wrap.init(clip, blitter); | 409 wrap.init(clip, blitter); |
| 412 blitter = wrap.getBlitter(); | 410 blitter = wrap.getBlitter(); |
| 413 clipRgn = &wrap.getRgn(); | 411 clipRgn = &wrap.getRgn(); |
| 414 } | 412 } |
| 415 AntiHairLineRgn(p0, p1, clipRgn, blitter); | 413 AntiHairLineRgn(p0, p1, clipRgn, blitter); |
| 416 } | 414 } |
| 417 } | 415 } |
| OLD | NEW |