diff options
author | Brian Salomon <bsalomon@google.com> | 2017-11-29 10:52:00 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-29 16:18:45 +0000 |
commit | 29f9ed4dcc9c17e9f6116bed727a0fc0115b828d (patch) | |
tree | 34c04c99b1a2d775b5cd42a9024c4bf9f1839869 | |
parent | 935a35bce4caf763654eb6840eb2940e2bc45453 (diff) |
Revert "Revert "Make PathGeoBuilder use consistent iterators.""
This reverts commit b4513213245c2550683236b3aae829c8f3086469.
Bug: chromium:788500
Change-Id: I6028b20770009b703f76ce2d9b451c561eaa705a
Reviewed-on: https://skia-review.googlesource.com/77582
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
-rw-r--r-- | gm/crbug_788500.cpp | 23 | ||||
-rw-r--r-- | gn/gm.gni | 1 | ||||
-rw-r--r-- | src/gpu/ops/GrDefaultPathRenderer.cpp | 4 |
3 files changed, 26 insertions, 2 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); +} @@ -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..d49e43e072 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; } @@ -265,7 +265,7 @@ private: SkASSERT(vertexCount <= fVerticesInChunk); SkASSERT(indexCount <= fIndicesInChunk); - if (vertexCount > 0) { + if (this->isIndexed() ? SkToBool(indexCount) : SkToBool(vertexCount)) { if (!this->isIndexed()) { fMesh.setNonIndexedNonInstanced(vertexCount); } else { |