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>
This commit is contained in:
parent
3cc8092947
commit
9c8a16bb1e
23
gm/crbug_788500.cpp
Normal file
23
gm/crbug_788500.cpp
Normal file
@ -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",
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user