RFR: 8242861: Update ImagePattern to apply SVG pattern transforms [v6]

Kevin Rushforth kcr at openjdk.java.net
Mon Oct 12 13:45:14 UTC 2020


On Mon, 12 Oct 2020 03:23:29 GMT, Arun Joseph <ajoseph at openjdk.org> wrote:

>> modules/javafx.web/src/main/java/com/sun/javafx/webkit/prism/WCGraphicsPrismContext.java line 790:
>> 
>>> 788:                     Affine3D at = new Affine3D();
>>> 789:                     at.translate(phase.getX(), phase.getY());
>>> 790:                     at.concatenate(m[0], -m[1], m[4], -m[2], m[3], m[5]);
>> 
>> Can you explain why the matrix is transformed in this way (specifically the negation of elements 1 and 2)? A code
>> comment would be helpful since it is non-obvious.
>
> Instead of negation, it should have been at the opposite positions. I have fixed this in the latest commit. The arg
> list order for
> [`concatenate`](https://github.com/openjdk/jfx/blob/a56ba63bef9b33c4ad5cc9e05ae5bdb0ee480a3f/modules/javafx.graphics/src/main/java/com/sun/javafx/geom/transform/AffineBase.java#L2849)
> is different compared to the constructor of Affine2D.

With your latest change, the call looks like what I would expect now. I suspect a shear transform would have been
broken before this last fix, but I didn't try it.

-------------

PR: https://git.openjdk.java.net/jfx/pull/190


More information about the openjfx-dev mailing list