aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkScan_Hairline.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-03-06 13:40:24 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-06 19:56:46 +0000
commitbe1b3971806e3d80aa9673a36e2b35d0145198ac (patch)
treefec8c2a345951fdd14b4c5da392586f231cb9c92 /src/core/SkScan_Hairline.cpp
parent18e9ba1eddb09bff6083f9a83dc569d3b3b54fe6 (diff)
add tiler for SkDraw
Bug: skia:2122 Change-Id: I276de2064939151eef5fa14c53188e8b5728b7c9 Reviewed-on: https://skia-review.googlesource.com/110840 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'src/core/SkScan_Hairline.cpp')
-rw-r--r--src/core/SkScan_Hairline.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
index 1f12efefc5..65dd397d01 100644
--- a/src/core/SkScan_Hairline.cpp
+++ b/src/core/SkScan_Hairline.cpp
@@ -144,8 +144,14 @@ void SkScan::HairLineRgn(const SkPoint array[], int arrayCount, const SkRegion*
// we don't just draw 4 lines, 'cause that can leave a gap in the bottom-right
// and double-hit the top-left.
-void SkScan::HairRect(const SkRect& rect, const SkRasterClip& clip,
- SkBlitter* blitter) {
+void SkScan::HairRect(const SkRect& origRect, const SkRasterClip& clip, SkBlitter* blitter) {
+ SkRect rect = origRect;
+ // clip against a slightly larger clip, to get us into "int" range. Need it slightly
+ // larger since we're a hairline, and may draw outside of our bounds.
+ if (!rect.intersect(SkRect::Make(clip.getBounds()).makeOutset(1, 1))) {
+ return;
+ }
+
SkAAClipBlitterWrapper wrapper;
SkBlitterClipper clipper;
const SkIRect r = SkIRect::MakeLTRB(SkScalarFloorToInt(rect.fLeft),