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

Unified Diff: tests/GrShapeTest.cpp

Issue 2070643002: Add some more getters to GrShape. (Closed) Base URL: https://chromium.googlesource.com/skia.git@moreshapestuf
Patch Set: rm extra space 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.h ('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 7636e2a0d080dddcc8f271e764bc1f4aeb0abed9..1ee9bbc018270dbc9e7817d38d6ce79fc30f1d41 100644
--- a/tests/GrShapeTest.cpp
+++ b/tests/GrShapeTest.cpp
@@ -296,7 +296,8 @@ static void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrS
bool aHasPE = a.style().hasPathEffect();
bool bHasPE = b.style().hasPathEffect();
bool allowSameRRectButDiffStartAndDir = (aIsRRect && bIsRRect) && (aHasPE != bHasPE);
-
+ // GrShape will close paths with simple fill style.
+ bool allowedClosednessDiff = (a.style().isSimpleFill() != b.style().isSimpleFill());
SkPath pathA, pathB;
a.asPath(&pathA);
b.asPath(&pathB);
@@ -327,6 +328,8 @@ static void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrS
} else {
SkPath pA = pathA;
SkPath pB = pathB;
+ REPORTER_ASSERT(r, a.inverseFilled() == pA.isInverseFillType());
+ REPORTER_ASSERT(r, b.inverseFilled() == pB.isInverseFillType());
if (ignoreInversenessDifference) {
pA.setFillType(SkPath::ConvertToNonInverseFillType(pathA.getFillType()));
pB.setFillType(SkPath::ConvertToNonInverseFillType(pathB.getFillType()));
@@ -342,7 +345,7 @@ static void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrS
} else {
REPORTER_ASSERT(r, keyA != keyB);
}
- if (a.style().isSimpleFill() != b.style().isSimpleFill()) {
+ if (allowedClosednessDiff) {
// GrShape will close paths with simple fill style. Make the non-filled path closed
// so that the comparision will succeed. Make sure both are closed before comparing.
pA.close();
@@ -358,14 +361,32 @@ static void check_equivalence(skiatest::Reporter* r, const GrShape& a, const GrS
}
}
REPORTER_ASSERT(r, a.isEmpty() == b.isEmpty());
- REPORTER_ASSERT(r, a.knownToBeClosed() == b.knownToBeClosed());
+ REPORTER_ASSERT(r, allowedClosednessDiff || a.knownToBeClosed() == b.knownToBeClosed());
+ // closedness can affect convexity.
+ REPORTER_ASSERT(r, allowedClosednessDiff || a.knownToBeConvex() == b.knownToBeConvex());
+ if (a.knownToBeConvex()) {
+ REPORTER_ASSERT(r, pathA.isConvex());
+ }
+ if (b.knownToBeConvex()) {
+ REPORTER_ASSERT(r, pathB.isConvex());
+ }
REPORTER_ASSERT(r, a.bounds() == b.bounds());
REPORTER_ASSERT(r, a.segmentMask() == b.segmentMask());
SkPoint pts[4];
REPORTER_ASSERT(r, a.asLine(pts) == b.asLine(pts + 2));
+ // mayBeInverseFilledAfterStyling() is allowed to differ if one has a arbitrary PE and the other
+ // doesn't (since the PE can set any fill type on its output path).
+ // Moreover, dash style explicitly ignores inverseness. So if one is dashed but not the other
+ // then they may disagree about inverseness.
+ if (a.style().hasNonDashPathEffect() == b.style().hasNonDashPathEffect() &&
+ a.style().isDashed() == b.style().isDashed()) {
+ REPORTER_ASSERT(r, a.mayBeInverseFilledAfterStyling() ==
+ b.mayBeInverseFilledAfterStyling());
+ }
if (a.asLine(pts)) {
REPORTER_ASSERT(r, pts[2] == pts[0] && pts[3] == pts[1]);
}
+ REPORTER_ASSERT(r, ignoreInversenessDifference || a.inverseFilled() == b.inverseFilled());
}
void TestCase::compare(skiatest::Reporter* r, const TestCase& that,
« no previous file with comments | « src/gpu/GrShape.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698