<div dir="ltr"><div dir="auto">Hi,<br><br>Please review this large patch providing Marlin 0.9.1 for JDK 11:<br><br>JBS: to be created asap<br>webrev: <a href="http://cr.openjdk.java.net/~lbourges/marlin/marlin-091.0/" target="_blank">http://cr.openjdk.java.net/~<wbr>lbourges/marlin/marlin-091.0/</a><br><br>Changes:<br>- *ArrayCache: removed clean flag and usage of jdk.internal.UNSAFE.<wbr>allocateUninitializedArray()<br>- (D)Curve: added support for lines (curve type 4) + new methods x/y Points to compute intersections on clip edges<br>- (D)Dasher: use new CurveBasicMonotonizer & CurveClipSplitter to perform clipping in Dasher that uses skipLen() to compute properly the dash phase & state<br>- (D)Helpers: refined precision in cubicRootsInAB (float variant) + add fastXXXLen() to quickly estimate curve length from control points<br>      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<br>- (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<br>- (D)Renderer: refined [quad/cubic]<wbr>BreakIntoLinesAndAdd loops to enhance accuracy (smaller error related to 2nd ddx/y) with asymetric supixel counts<br>- (D)Stroker: use new CurveBasicMonotonizer & CurveClipSplitter (code refactoring)<br>- (D)TransformingPathConsumer2D: use CurveClipSplitter in PathClipFilter to clip filled shapes overlapping clipping edges <br>            added CurveClipSplitter that subdivides curves (line, quad, cubic) at clip intersections (+ small padding to avoid precision issues)<br>            added CurveBasicMonotonizer to monotonize curves (before in Stroker) to make it on initial curve in Dasher (more efficient than for all dashes)<br>- (D)PathSimplifier: new basic path clipper (disabled by default) ignoring too small segments (radial distance threshold)<br>- 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</div><div dir="auto"><br></div><div>Build & jtreg tests: OK<br></div><div dir="auto"><br>Cheers,<br>Laurent</div></div>