diff options
author | bsalomon <bsalomon@google.com> | 2016-06-23 12:23:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-23 12:23:07 -0700 |
commit | ac5fcea9c3ec32a87bfd8cb96531e82097a1d861 (patch) | |
tree | 902bbac950c033e06aa9ff08f7a38148b70eb2e9 /tests/GrShapeTest.cpp | |
parent | 41bb5b40e71411ee39538399ea125986ec760a90 (diff) |
Fix Rob's nits from https://codereview.chromium.org/2085913003
TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087393003
Review-Url: https://codereview.chromium.org/2087393003
Diffstat (limited to 'tests/GrShapeTest.cpp')
-rw-r--r-- | tests/GrShapeTest.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/tests/GrShapeTest.cpp b/tests/GrShapeTest.cpp index 348676be30..7636e2a0d0 100644 --- a/tests/GrShapeTest.cpp +++ b/tests/GrShapeTest.cpp @@ -263,8 +263,20 @@ void TestCase::testExpectations(skiatest::Reporter* reporter, SelfExpectations e } } -void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrShape& b, - const Key& keyA, const Key& keyB) { +static bool can_interchange_winding_and_even_odd_fill(const GrShape& shape) { + SkPath path; + shape.asPath(&path); + if (shape.style().hasNonDashPathEffect()) { + return false; + } + const SkStrokeRec::Style strokeRecStyle = shape.style().strokeRec().getStyle(); + return strokeRecStyle == SkStrokeRec::kStroke_Style || + strokeRecStyle == SkStrokeRec::kHairline_Style || + (shape.style().isSimpleFill() && path.isConvex()); +} + +static void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrShape& b, + const Key& keyA, const Key& keyB) { // GrShape only respects the input winding direction and start point for rrect shapes // when there is a path effect. Thus, if there are two GrShapes representing the same rrect // but one has a path effect in its style and the other doesn't then asPath() and the unstyled @@ -302,16 +314,8 @@ void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrShape& b bool ignoreWindingVsEvenOdd = false; if (SkPath::ConvertToNonInverseFillType(pathA.getFillType()) != SkPath::ConvertToNonInverseFillType(pathB.getFillType())) { - const SkStrokeRec::Style strokeRecStyleA = a.style().strokeRec().getStyle(); - const SkStrokeRec::Style strokeRecStyleB = b.style().strokeRec().getStyle(); - bool aCanChange = !a.style().hasNonDashPathEffect() && - (strokeRecStyleA == SkStrokeRec::kStroke_Style || - strokeRecStyleA == SkStrokeRec::kHairline_Style || - (a.style().isSimpleFill() && pathA.isConvex())); - bool bCanChange = !b.style().hasNonDashPathEffect() && - (strokeRecStyleB == SkStrokeRec::kStroke_Style || - strokeRecStyleB == SkStrokeRec::kHairline_Style || - (b.style().isSimpleFill() && pathB.isConvex())); + bool aCanChange = can_interchange_winding_and_even_odd_fill(a); + bool bCanChange = can_interchange_winding_and_even_odd_fill(b); if (aCanChange != bCanChange) { ignoreWindingVsEvenOdd = true; } |