On Tue, 28 Jul 2020 17:52:50 GMT, Bhawesh Choudhary <[email protected]>
wrote:
>> Root cause of issue is Specifying a image mask from GraphicsContextJava.cpp
>> in WebKit was not implemented, so masking
>> doesn't take place at all while rendering SVGRect. to fix this issue add
>> implementation of function clipToImageBuffer()
>> in GraphicsContextJava.cpp and send clip image to
>> WCGraphicsPrismContext.java While rendering in
>> WCGraphicsPrismContext.java if image clip mask is available, use it for
>> rendering using MaskTextureGraphics interface
>> otherwise use usual way of rendering.
>
> Bhawesh Choudhary has updated the pull request incrementally with one
> additional commit since the last revision:
>
> Removed RenderSVGResourceMasker changes and added fix for HIDPI mask
> rendering
While reviewing the most recent fix, I noticed that the call to `setCTM` in
`GraphicsContextJava.cpp` was only done in
the `fillRect` case. I then took a closer look at the change in
`WCGraphicsPrismContext.java` and I see that the
application of the mask is also only done for `fillRect`. A mask will still not
be applied for filled rounded
rectangles, filled paths, and all stroked primitives.
So this is an incomplete fix. I will add a couple additional test cases to the
bug report.
modules/javafx.web/src/main/native/Source/WebCore/platform/graphics/java/GraphicsContextJava.cpp
line 235:
> 234: if (m_state.fillGradient) {
> 235: setCTM(m_state.transform);
> 236: setGradient(
Why is this needed here, but not in the other places `setGradient` is called?
Won't there be a similar problem with
`strokeRect`, `fillPath`, etc?
-------------
PR: https://git.openjdk.java.net/jfx/pull/213