Lines Matching refs:difference
49 // .difference()
84 // for difference ops, whereas ClipStack only sometimes can subtract the inner bounds for a
85 // difference op.
109 ElementsBuilder& difference() { fOp = SkClipOp::kDifference; return *this; }
567 // Tests that an intersection and a difference op do not combine, even if they would have if both
578 .difference().rect(r2)
916 .expect().aa().difference().rect(rect).finishElements()
920 // Inverse filled rect + difference -> int. rect
921 run_test_case(r, TestCase::Build("inverse-rect-difference", kDeviceBounds)
922 .actual().aa().difference().path(inverseRectPath).finishElements()
930 .expect().aa().difference().path(complexPath).finishElements()
934 // Inverse filled path + difference -> int. path
935 run_test_case(r, TestCase::Build("inverse-path-difference", kDeviceBounds)
936 .actual().aa().difference().path(inverseComplexPath).finishElements()
982 run_test_case(r, TestCase::Build("difference-combo", kDeviceBounds)
983 .actual().aa().difference()
990 run_test_case(r, TestCase::Build("difference-rect", kDeviceBounds)
991 .actual().aa().difference()
996 run_test_case(r, TestCase::Build("difference-rrect", kDeviceBounds)
997 .actual().aa().difference()
1002 run_test_case(r, TestCase::Build("difference-path", kDeviceBounds)
1003 .actual().aa().difference()
1021 run_test_case(r, TestCase::Build("empty-difference", kDeviceBounds)
1022 .actual().difference().rect(SkRect::MakeEmpty()).finishElements()
1027 run_test_case(r, TestCase::Build("noop-difference", kDeviceBounds)
1028 .actual().difference().rrect(rrect).rect(SkRect::MakeEmpty())
1030 .expect().difference().rrect(rrect).finishElements()
1035 // Tests that sufficiently large difference operations can shrink the conservative bounds
1043 run_test_case(r, TestCase::Build("difference-cut", kDeviceBounds)
1044 .actual().nonAA().difference().rect(rightSide).finishElements()
1045 .expect().nonAA().difference().rect(clipped).finishElements()
1050 // Tests that intersections can combine even if there's a difference operation in the middle
1079 auto b = TestCase::Build("many-paths-difference", kDeviceBounds);
1131 .actual().difference().aa().rect(rect).finishElements()
1161 .actual().difference().aa().rrect(rrect).finishElements()
1269 run_test_case(r, TestCase::Build("convex+rect-difference", kDeviceBounds)
1270 .actual().aa().difference().rect(rect).path(bigPath).finishElements()
1271 .expect().aa().difference().path(bigPath).finishElements()
1274 run_test_case(r, TestCase::Build("convex+rrect-difference", kDeviceBounds)
1275 .actual().aa().difference().rrect(rrect).path(bigPath)
1277 .expect().aa().difference().path(bigPath).finishElements()
1281 // Intersect small shape + difference big path -> empty
1284 .difference().path(bigPath).finishElements()
1289 .difference().path(bigPath).finishElements()
1295 .actual().aa().intersect().path(bigPath).difference().rect(rect)
1301 .actual().aa().intersect().path(bigPath).difference().rrect(rrect)
1517 run_test_case(r, TestCase::Build("rect-difference", kDeviceBounds)
1518 .actual().difference().rect(rect).finishElements()
1521 run_test_case(r, TestCase::Build("rrect-difference", kDeviceBounds)
1522 .actual().difference().rrect(rrect).finishElements()
1525 run_test_case(r, TestCase::Build("convex-difference", kDeviceBounds)
1526 .actual().difference().path(convex).finishElements()
1548 .actual().nonAA().difference().rect(rt).rrect(rr).path(p)
1557 .nonAA().difference().rrect(rr).path(p)
1566 .nonAA().difference().rect(rt).path(p)
1575 .nonAA().difference().rect(rt).rrect(rr)
1612 // Shrink the rect for difference ops, otherwise in the rect testcase
1613 // any difference op would remove the intersection of the other ops
1647 // the actual elements to be unmodified (both intersect and difference).
1651 // - difference ops already added in the for loop