diff options
author | Stephen White <senorblanco@chromium.org> | 2017-08-22 10:20:51 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-22 18:54:37 +0000 |
commit | 267641a90cb18a430b0a84910f651e2181744fd3 (patch) | |
tree | f357ce0848f5abeecf9d761f79e242f4b9e46098 /src/gpu | |
parent | 620cc248517a509040d3f94f29710edf3a151c5b (diff) |
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 <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrPathUtils.cpp | 2 | ||||
-rw-r--r-- | src/gpu/GrTessellator.cpp | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrDefaultPathRenderer.cpp | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrMSAAPathRenderer.cpp | 4 |
4 files changed, 5 insertions, 5 deletions
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) { |