RFR: 8274066: Polygon filled outside its area when very large coordinates are used
Laurent Bourgès
lbourges at openjdk.java.net
Fri Jan 7 20:43:29 UTC 2022
On Wed, 17 Nov 2021 22:05:25 GMT, Laurent Bourgès <lbourges at openjdk.org> wrote:
> Changelog for this MarlinFX 0.9.4.5 release:
>
> The Marlin-renderer 0.9.4.5 release provides bug fixes on Marlin's path clipper:
> - removed simple-precision (float) variant
> - improved Stroker to handle huge coordinates, up to 1E15
> - improved PathClipFilter (filler) to handle huge coordinates, up to 1E15
>
>
> This is the Marlin-renderer 0.9.4.3 release providing few bug / enhancement fixes in the MarlinRenderingEngine:
> - Update DPQS to latest OpenJDK 14 patch
> - Improve cubic curve offset computation
>
>
> The Marlin-renderer 0.9.4.2 release provides a single long-standing bug fix in the MarlinRenderingEngine:
> - JDK-8230728, https://bugs.openjdk.java.net/browse/JDK-8230728.
>
>
> Marlin-renderer 0.9.4.1 provides only a single bug fix in the path clipper, reported first against JavaFX 11:
> - JDK-8226789, https://bugs.openjdk.java.net/browse/JDK-8226789.
>
>
> This is the Marlin-renderer 0.9.4 release providing an updated Dual Pivot Quick Sort (19.05) as its internal sorter faster than the Marlin's optimized MergeSort (x-position + edge indices) for arrays larger than 256.
>
> Special Thanks to Vladimir Yaroslavskiy that provided me up-to-date DPQS 19.05 with many variants, improving almost-sorted datasets. We are collaborating to provide a complete Sort framework (15 algorithms, many various datasets, JMH benchmarks) publicly on github:
> see https://github.com/bourgesl/nearly-optimal-mergesort-code
Sorry I forgot to explain why I did not write any new test:
- I wrote a quadrant test in my own project that tests this clipper bug exhaustively, using all combinations, but it was visual, not automated like a robot.
- existing ClipShapeTest already validates using a fuzzy testing approach all clipper possible cases with small coords in range [-300, 300]. The new clipper algorithm in this patch still passes this hardness test on small coords, so no regression is present. I tested up to 10^6 random shapes for every test cases (order 1,2,3) + all cap/join/fill combinations.
To conclude, I decided to skip writing another test for this bug.
Cheers
-------------
PR: https://git.openjdk.java.net/jfx/pull/674
More information about the openjfx-dev
mailing list