Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: tests/GrShapeTest.cpp

Issue 2087393003: Fix Rob's nits from https://codereview.chromium.org/2085913003 (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: cleaner Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrShape.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/GrShapeTest.cpp
diff --git a/tests/GrShapeTest.cpp b/tests/GrShapeTest.cpp
index 348676be302a080f030e833e917213757e735f52..7636e2a0d080dddcc8f271e764bc1f4aeb0abed9 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;
}
« no previous file with comments | « src/gpu/GrShape.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698