aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar Stephen White <senorblanco@chromium.org>2017-08-22 10:20:51 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-22 18:54:37 +0000
commit267641a90cb18a430b0a84910f651e2181744fd3 (patch)
treef357ce0848f5abeecf9d761f79e242f4b9e46098 /src/gpu
parent620cc248517a509040d3f94f29710edf3a151c5b (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.cpp2
-rw-r--r--src/gpu/GrTessellator.cpp2
-rw-r--r--src/gpu/ops/GrDefaultPathRenderer.cpp2
-rw-r--r--src/gpu/ops/GrMSAAPathRenderer.cpp4
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) {