Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Jim Graham
I want to elaborate on winding count issues for segments to the left of the clip for both winding modes. All curves have the property that the winding count of any sample point to the right of them is identical to the winding count of a line from their starting point to their ending point. Co

Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Jim Graham
I had another thought here. If you have some plan where you can identify incoming paths as "probably benefiting from more aggressive clipping logic" vs others that are classified as "most likely will have little to no clipping" and you want to avoid the overhead of having the early-rejection cl

Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Jim Graham
First, consider what is handled inside the guts of the Renderer process. - It doesn't need to process any segments above or below the clip, they have no impact on the rendered pieces inside the clip - It needs to process segments that are out-left only in so far as it needs to come up with a pro

Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Laurent Bourgès
Hi Jim, I am answering your first message: Area is overkill for this as it tries to find exact intersection points of arbitrary geometry. You simply need something that will trace accurately around the outside of a clip to get from an exit point back to an entry point. That is a much simpler op

Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Jim Graham
To be clear, all that would be needed in cubicTo would be: if (y0 > bot && y1 > bot && y2 > bot && y3 > bot) { xy0 = xy3; return; } if (y0 < top && y1 < top && y2 < top && y3 < top) { xy0 = xy3; return; } if (x0 > rgt && x1 > rgt && x2 > rgt && x3 > rgt) { xy0 = xy3; return; } if (x0 < lft && x1

[10] Review request: 8187059 Update VS Projects

2017-08-31 Thread Chris Bensen
Victor, Please review this change to upgrade the native projects to the latest version of VS 2017: JIRA: https://bugs.openjdk.java.net/browse/JDK-8187059 Webrev: http://cr.openjdk.java.net/~cbensen/JDK-8187059/webrev.00/ Chris

Re: [OpenJDK 2D-Dev] RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Jim Graham
Hi Laurent, Area is overkill for this as it tries to find exact intersection points of arbitrary geometry. You simply need something that will trace accurately around the outside of a clip to get from an exit point back to an entry point. That is a much simpler operation. The performance is

Re: RFR JDK-8184429: Path clipper added in Marlin2D & MarlinFX 0.8.0

2017-08-31 Thread Laurent Bourgès
Jim, FYI I am working on a more general clipper for filled shapes (only non zero winding rule) that ignores useless segments on left / right sides but leaves the path closed for filling primitives. It is more tricky... to handle turning points (corners) but I think it could be applied later to th