RFR: 8274066: Polygon filled outside its area when very large coordinates are used [v2]
Laurent Bourgès
lbourges at openjdk.java.net
Sat Feb 5 14:33:18 UTC 2022
On Mon, 10 Jan 2022 00:04:00 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:
>> - 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
>
> Laurent Bourgès has updated the pull request incrementally with one additional commit since the last revision:
>
> added test for huge polygon coords
Hi Kevin,
I am running again MapBench tests to determine good conditions proving this DPQS patch has much benefits in real cases.
I added a new TextPage (50 lines of long text) scene.
I remember (2019) that dpqs rocks really when the edge density is high (200 to 1000 items to sort per scanline) but it can happen quite easily:
- AA disabled => 8 times more crossings to sort at each scanline (the test case of the plot https://raw.githubusercontent.com/bourgesl/bourgesl.github.io/master/marlin-0.9.4/diff-marlin-094-gain.png)
- zoomed out scene so the all complex paths are really small that maximizes the density, like 1/8 ot 1/20 ... of course, the scene must contain long paths (many edges) like a complex polyline, polygon or text (as shape)
@iaroslavski could you answer the IP / legal question ?
More results soon,
Laurent
-------------
PR: https://git.openjdk.java.net/jfx/pull/674
More information about the openjfx-dev
mailing list