From 267641a90cb18a430b0a84910f651e2181744fd3 Mon Sep 17 00:00:00 2001 From: Stephen White Date: Tue, 22 Aug 2017 10:20:51 -0400 Subject: Fix artifacts on tiny stroked paths scaled up a lot. Set doConsumeDegenerates to false when calling SkPath::Iter::next() for all paths which are not in screen space. These lines are not degenerate for world space paths. Bug: skia:6987 Change-Id: I411faf594bf8a15891bfff08691e86679b7741ac Reviewed-on: https://skia-review.googlesource.com/36881 Reviewed-by: Brian Salomon Commit-Queue: Stephen White --- src/gpu/GrPathUtils.cpp | 2 +- src/gpu/GrTessellator.cpp | 2 +- src/gpu/ops/GrDefaultPathRenderer.cpp | 2 +- src/gpu/ops/GrMSAAPathRenderer.cpp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/gpu') diff --git a/src/gpu/GrPathUtils.cpp b/src/gpu/GrPathUtils.cpp index 9a79f2061e..0089fc1703 100644 --- a/src/gpu/GrPathUtils.cpp +++ b/src/gpu/GrPathUtils.cpp @@ -167,7 +167,7 @@ int GrPathUtils::worstCasePointCount(const SkPath& path, int* subpaths, SkScalar SkPath::Verb verb; SkPoint pts[4]; - while ((verb = iter.next(pts)) != SkPath::kDone_Verb) { + while ((verb = iter.next(pts, false)) != SkPath::kDone_Verb) { switch (verb) { case SkPath::kLine_Verb: diff --git a/src/gpu/GrTessellator.cpp b/src/gpu/GrTessellator.cpp index 4d638ba60c..a1ea284bab 100644 --- a/src/gpu/GrTessellator.cpp +++ b/src/gpu/GrTessellator.cpp @@ -711,7 +711,7 @@ void path_to_contours(const SkPath& path, SkScalar tolerance, const SkRect& clip } SkAutoConicToQuads converter; SkPath::Verb verb; - while ((verb = iter.next(pts)) != SkPath::kDone_Verb) { + while ((verb = iter.next(pts, false)) != SkPath::kDone_Verb) { switch (verb) { case SkPath::kConic_Verb: { SkScalar weight = iter.conicWeight(); diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp index 4a436aa04b..e3b48a8db9 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.cpp +++ b/src/gpu/ops/GrDefaultPathRenderer.cpp @@ -148,7 +148,7 @@ public: bool done = false; while (!done) { - SkPath::Verb verb = iter.next(pts); + SkPath::Verb verb = iter.next(pts, false); switch (verb) { case SkPath::kMove_Verb: this->moveTo(pts[0]); diff --git a/src/gpu/ops/GrMSAAPathRenderer.cpp b/src/gpu/ops/GrMSAAPathRenderer.cpp index ef19367f61..20079dd425 100644 --- a/src/gpu/ops/GrMSAAPathRenderer.cpp +++ b/src/gpu/ops/GrMSAAPathRenderer.cpp @@ -289,7 +289,7 @@ private: SkPath::Verb verb; SkPoint pts[4]; - while ((verb = iter.next(pts)) != SkPath::kDone_Verb) { + while ((verb = iter.next(pts, false)) != SkPath::kDone_Verb) { switch (verb) { case SkPath::kLine_Verb: linePointCount += 1; @@ -508,7 +508,7 @@ private: bool done = false; while (!done) { - SkPath::Verb verb = iter.next(pts); + SkPath::Verb verb = iter.next(pts, false); switch (verb) { case SkPath::kMove_Verb: if (!first) { -- cgit v1.2.3