From 1bb47df4fc8edf62b0463d088214ed1ffb909ca9 Mon Sep 17 00:00:00 2001 From: Cary Clark Date: Mon, 18 Jun 2018 08:53:00 -0400 Subject: fast path for pathops Add faster path for simple but common path ops: - intersect two rects - all ops where one operand is empty R=halcanary@google.com Bug: skia:8049 Change-Id: I2a516d095feae8478ee9433262c9c77e5e18ce81 Reviewed-on: https://skia-review.googlesource.com/132929 Auto-Submit: Cary Clark Reviewed-by: Cary Clark Commit-Queue: Cary Clark --- tests/PathOpsOpTest.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/PathOpsOpTest.cpp') diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp index cfa9a450a0..52cd8b2a04 100644 --- a/tests/PathOpsOpTest.cpp +++ b/tests/PathOpsOpTest.cpp @@ -5729,6 +5729,28 @@ static void halbug(skiatest::Reporter* reporter, const char* filename) { testPathOp(reporter, path, path2, kIntersect_SkPathOp, filename); } +static void testRect1_u(skiatest::Reporter* reporter, const char* filename) { + SkPath path, pathB; + path.setFillType(SkPath::kWinding_FillType); + path.moveTo(0, 0); + path.lineTo(0, 60); + path.lineTo(60, 60); + path.lineTo(60, 0); + path.close(); + path.moveTo(30, 20); + path.lineTo(30, 50); + path.lineTo(50, 50); + path.lineTo(50, 20); + path.close(); + path.moveTo(24, 20); + path.lineTo(24, 30); + path.lineTo(36, 30); + path.lineTo(36, 20); + path.close(); + pathB.setFillType(SkPath::kWinding_FillType); + testPathOp(reporter, path, pathB, kUnion_SkPathOp, filename); +} + static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; @@ -5736,6 +5758,7 @@ static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; #define TEST(name) { name, #name } static struct TestDesc tests[] = { + TEST(testRect1_u), TEST(halbug), TEST(seanbug), TEST(android1), -- cgit v1.2.3