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/PathTest.cpp

Issue 15080010: Add special handling of rectori case for gpu (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Added unit test Created 7 years, 7 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/GrContext.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/PathTest.cpp
===================================================================
--- tests/PathTest.cpp (revision 9163)
+++ tests/PathTest.cpp (working copy)
@@ -1322,22 +1322,22 @@
static void test_isNestedRects(skiatest::Reporter* reporter) {
// passing tests (all moveTo / lineTo...
- SkPoint r1[] = {{0, 0}, {1, 0}, {1, 1}, {0, 1}};
+ SkPoint r1[] = {{0, 0}, {1, 0}, {1, 1}, {0, 1}}; // CW
SkPoint r2[] = {{1, 0}, {1, 1}, {0, 1}, {0, 0}};
SkPoint r3[] = {{1, 1}, {0, 1}, {0, 0}, {1, 0}};
SkPoint r4[] = {{0, 1}, {0, 0}, {1, 0}, {1, 1}};
- SkPoint r5[] = {{0, 0}, {0, 1}, {1, 1}, {1, 0}};
+ SkPoint r5[] = {{0, 0}, {0, 1}, {1, 1}, {1, 0}}; // CCW
SkPoint r6[] = {{0, 1}, {1, 1}, {1, 0}, {0, 0}};
SkPoint r7[] = {{1, 1}, {1, 0}, {0, 0}, {0, 1}};
SkPoint r8[] = {{1, 0}, {0, 0}, {0, 1}, {1, 1}};
SkPoint r9[] = {{0, 1}, {1, 1}, {1, 0}, {0, 0}};
- SkPoint ra[] = {{0, 0}, {0, .5f}, {0, 1}, {.5f, 1}, {1, 1}, {1, .5f},
+ SkPoint ra[] = {{0, 0}, {0, .5f}, {0, 1}, {.5f, 1}, {1, 1}, {1, .5f}, // CCW
{1, 0}, {.5f, 0}};
- SkPoint rb[] = {{0, 0}, {.5f, 0}, {1, 0}, {1, .5f}, {1, 1}, {.5f, 1},
+ SkPoint rb[] = {{0, 0}, {.5f, 0}, {1, 0}, {1, .5f}, {1, 1}, {.5f, 1}, // CW
{0, 1}, {0, .5f}};
- SkPoint rc[] = {{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}};
- SkPoint rd[] = {{0, 0}, {0, 1}, {1, 1}, {1, 0}, {0, 0}};
- SkPoint re[] = {{0, 0}, {1, 0}, {1, 0}, {1, 1}, {0, 1}};
+ SkPoint rc[] = {{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}}; // CW
+ SkPoint rd[] = {{0, 0}, {0, 1}, {1, 1}, {1, 0}, {0, 0}}; // CCW
+ SkPoint re[] = {{0, 0}, {1, 0}, {1, 0}, {1, 1}, {0, 1}}; // CW
// failing tests
SkPoint f1[] = {{0, 0}, {1, 0}, {1, 1}}; // too few points
@@ -1366,6 +1366,18 @@
f1, f2, f3, f4, f5, f6, f7, f8,
c1, c2
};
+ SkPath::Direction dirs[] = {
+ SkPath::kCW_Direction, SkPath::kCW_Direction, SkPath::kCW_Direction,
+ SkPath::kCW_Direction, SkPath::kCCW_Direction, SkPath::kCCW_Direction,
+ SkPath::kCCW_Direction, SkPath::kCCW_Direction, SkPath::kCCW_Direction,
+ SkPath::kCCW_Direction, SkPath::kCW_Direction, SkPath::kCW_Direction,
+ SkPath::kCCW_Direction, SkPath::kCW_Direction, SkPath::kUnknown_Direction,
+ SkPath::kUnknown_Direction, SkPath::kUnknown_Direction, SkPath::kUnknown_Direction,
+ SkPath::kUnknown_Direction, SkPath::kUnknown_Direction, SkPath::kUnknown_Direction,
+ SkPath::kUnknown_Direction, SkPath::kUnknown_Direction, SkPath::kUnknown_Direction,
+ };
+ SkASSERT(SK_ARRAY_COUNT(tests) == SK_ARRAY_COUNT(dirs));
+
const SkPoint* lastPass = re;
const SkPoint* lastClose = f8;
const size_t testCount = sizeof(tests) / sizeof(tests[0]);
@@ -1391,13 +1403,22 @@
REPORTER_ASSERT(reporter, fail ^ path.isNestedRects(0));
if (!fail) {
SkRect expected[2], computed[2];
+ SkPath::Direction expectedDirs[2], computedDirs[2];
SkRect testBounds;
testBounds.set(tests[testIndex], testLen[testIndex] / sizeof(SkPoint));
expected[0] = SkRect::MakeLTRB(-1, -1, 2, 2);
expected[1] = testBounds;
- REPORTER_ASSERT(reporter, path.isNestedRects(computed));
+ if (rectFirst) {
+ expectedDirs[0] = SkPath::kCW_Direction;
+ } else {
+ expectedDirs[0] = SkPath::kCCW_Direction;
+ }
+ expectedDirs[1] = dirs[testIndex];
+ REPORTER_ASSERT(reporter, path.isNestedRects(computed, computedDirs));
REPORTER_ASSERT(reporter, expected[0] == computed[0]);
REPORTER_ASSERT(reporter, expected[1] == computed[1]);
+ REPORTER_ASSERT(reporter, expectedDirs[0] == computedDirs[0]);
+ REPORTER_ASSERT(reporter, expectedDirs[1] == computedDirs[1]);
}
if (tests[testIndex] == lastPass) {
fail = true;
« no previous file with comments | « src/gpu/GrContext.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698