skia2/src/pathops
caryclark 65f553182a These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions.
The fixes include
- detect when finding the active top loops between two possible answers
- preflight chasing winding to ensure answer is consistent
- binary search more often when quadratic intersection fails
- add more failure paths when an intersect is missed

While this fixes the chrome bug, reenabling path ops in svg should be deferred until additional fixes are landed.

TBR=
BUG=421132

Committed: https://skia.googlesource.com/skia/+/6f726addf3178b01949bb389ef83cf14a1d7b6b2

Review URL: https://codereview.chromium.org/633393002
2014-11-13 06:58:52 -08:00
..
SkAddIntersections.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkAddIntersections.h fail early if coincidence can't be resolved 2014-09-19 06:33:31 -07:00
SkDCubicIntersection.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkDCubicLineIntersection.cpp Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkDCubicToQuads.cpp Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkDLineIntersection.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkDQuadImplicit.cpp path ops work in progress 2013-10-02 14:49:34 +00:00
SkDQuadImplicit.h
SkDQuadIntersection.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkDQuadLineIntersection.cpp Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkIntersectionHelper.h Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkIntersections.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkIntersections.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkLineParameters.h Add some missing header include guards 2014-06-20 12:01:06 -07:00
SkOpAngle.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpAngle.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpContour.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpContour.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpEdgeBuilder.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
SkOpEdgeBuilder.h abort op early if path isn't parseable 2014-10-03 05:36:27 -07:00
SkOpSegment.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpSegment.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkOpSpan.h Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkPathOpsBounds.cpp add const to arrays of member functions 2014-08-25 06:53:04 -07:00
SkPathOpsBounds.h add const to arrays of member functions 2014-08-25 06:53:04 -07:00
SkPathOpsCommon.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkPathOpsCommon.h Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkPathOpsCubic.cpp When solving the cubic line intersection directly fails, use binary search as a fallback. 2014-05-07 15:31:40 +00:00
SkPathOpsCubic.h When solving the cubic line intersection directly fails, use binary search as a fallback. 2014-05-07 15:31:40 +00:00
SkPathOpsCurve.h Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkPathOpsDebug.cpp update pathops core and tests 2014-07-18 05:08:14 -07:00
SkPathOpsDebug.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkPathOpsLine.cpp fix battlefield website by disallowing very small coordinates 2014-09-18 10:32:57 -07:00
SkPathOpsLine.h Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkPathOpsOp.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkPathOpsPoint.cpp
SkPathOpsPoint.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkPathOpsQuad.cpp Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkPathOpsQuad.h Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkPathOpsRect.cpp turn off debugging printfs 2013-07-23 15:27:41 +00:00
SkPathOpsRect.h path ops -- fix skp bugs 2013-05-07 18:51:31 +00:00
SkPathOpsSimplify.cpp Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkPathOpsTightBounds.cpp add pathops tight bounds; conform path ops' gyp to unit tests 2014-06-24 07:55:12 -07:00
SkPathOpsTriangle.cpp Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. 2014-06-17 05:15:38 -07:00
SkPathOpsTriangle.h
SkPathOpsTypes.cpp When solving the cubic line intersection directly fails, use binary search as a fallback. 2014-05-07 15:31:40 +00:00
SkPathOpsTypes.h These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkPathWriter.cpp path ops work in progress 2013-10-02 14:49:34 +00:00
SkPathWriter.h Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkQuarticRoot.cpp Mike R: please sanity check SkPostConfig.h 2014-04-14 17:08:59 +00:00
SkQuarticRoot.h
SkReduceOrder.cpp These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions. 2014-11-13 06:58:52 -08:00
SkReduceOrder.h remove unused reduce order code 2013-11-25 14:18:21 +00:00