Hi, Please review this large patch providing Marlin 0.9.1 for JDK 11:
JBS: to be created asap webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin-091.0/ Changes: - *ArrayCache: removed clean flag and usage of jdk.internal.UNSAFE. allocateUninitializedArray() - (D)Curve: added support for lines (curve type 4) + new methods x/y Points to compute intersections on clip edges - (D)Dasher: use new CurveBasicMonotonizer & CurveClipSplitter to perform clipping in Dasher that uses skipLen() to compute properly the dash phase & state - (D)Helpers: refined precision in cubicRootsInAB (float variant) + add fastXXXLen() to quickly estimate curve length from control points moved findSubdivPoints() from (D)Stroker + added findClipPoints() to determine t values corresponding to curve intersections with the clip edges + added subdivideLineAt() to subdivide line segments - (D)MarlinRenderingEngine: disable stroker clipping if dasher clipping enabled (2nd clipping is counter-productive) + initialize new path simplifier if enabled (disabled by default) + log new settings - (D)Renderer: refined [quad/cubic]BreakIntoLinesAndAdd loops to enhance accuracy (smaller error related to 2nd ddx/y) with asymetric supixel counts - (D)Stroker: use new CurveBasicMonotonizer & CurveClipSplitter (code refactoring) - (D)TransformingPathConsumer2D: use CurveClipSplitter in PathClipFilter to clip filled shapes overlapping clipping edges added CurveClipSplitter that subdivides curves (line, quad, cubic) at clip intersections (+ small padding to avoid precision issues) added CurveBasicMonotonizer to monotonize curves (before in Stroker) to make it on initial curve in Dasher (more efficient than for all dashes) - (D)PathSimplifier: new basic path clipper (disabled by default) ignoring too small segments (radial distance threshold) - ClipShapeTest: improved test to use a small tolerance as clipped curves (at clip edges) has minor impact on computed offsets for stroked shapes and on dash positions: overall quality is improved as previously larger curves had more accumulated error on either dashes or stroke offsets Build & jtreg tests: OK Cheers, Laurent