aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-11-28 13:39:10 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-29 13:07:28 +0000
commit9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8 (patch)
treec1c28a15c513665d840cf760462f09f795cba143
parent3cc8092947882a59f7ded61c3ca44a569ae95b38 (diff)
Make PathGeoBuilder use consistent iterators.
Previously it used a degenerate consuming iterator to determine the whether there were multiple contours. This was inconsistent with the tessellating step. Bug: chromium:788500 Change-Id: I3938c69cf40bc551acdb8d5fa9b54d2c96e2a460 Reviewed-on: https://skia-review.googlesource.com/76961 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
-rw-r--r--gm/crbug_788500.cpp23
-rw-r--r--gn/gm.gni1
-rw-r--r--src/gpu/ops/GrDefaultPathRenderer.cpp2
3 files changed, 25 insertions, 1 deletions
diff --git a/gm/crbug_788500.cpp b/gm/crbug_788500.cpp
new file mode 100644
index 0000000000..ba14673701
--- /dev/null
+++ b/gm/crbug_788500.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkCanvas.h"
+#include "SkPaint.h"
+#include "SkPath.h"
+#include "gm.h"
+
+DEF_SIMPLE_GM(crbug_788500, canvas, 300, 300) {
+ SkPath path;
+ path.setFillType(SkPath::kEvenOdd_FillType);
+ path.moveTo(0, 0);
+ path.moveTo(245.5f, 98.5f);
+ path.cubicTo(245.5f, 98.5f, 242, 78, 260, 75);
+
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawPath(path, paint);
+}
diff --git a/gn/gm.gni b/gn/gm.gni
index 6892406edb..de98f79aad 100644
--- a/gn/gm.gni
+++ b/gn/gm.gni
@@ -92,6 +92,7 @@ gm_sources = [
"$_gm/convexpolyeffect.cpp",
"$_gm/copyTo4444.cpp",
"$_gm/crbug_691386.cpp",
+ "$_gm/crbug_788500.cpp",
"$_gm/croppedrects.cpp",
"$_gm/crosscontextimage.cpp",
"$_gm/cubicpaths.cpp",
diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp
index 4a9f0c2c04..f9c0c2b3a1 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -180,7 +180,7 @@ public:
SkPath::Verb verb;
SkPoint pts[4];
- while ((verb = iter.next(pts)) != SkPath::kDone_Verb) {
+ while ((verb = iter.next(pts, false)) != SkPath::kDone_Verb) {
if (SkPath::kMove_Verb == verb && !first) {
return true;
}