On Tue, 19 May 2020 10:13:44 GMT, Bhawesh Choudhary <github.com+4208131+bhawes...@openjdk.org> 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 unnecessery Ceil Functions The code looks good (with a couple minor formatting issues). All of the onscreen testing I did looks good on Windows. I'd like to test it on Mac as well. There is an issue with printing in the case of Hi-DPI scaling, which is what I run by default on Windows. The gradient texture appears to be scaled incorrectly (as if the scale was applied more than once). If I force scaling to 1 with `-Dglass.win.uiScale=1` then it prints correctly. modules/javafx.web/src/main/java/com/sun/javafx/webkit/prism/WCGraphicsPrismContext.java line 531: > 530: render(g, shadow, paint, null, node); > 531: } else if(state.getClipMaskImageNoClone() != null) { > 532: Rectangle rect = new Rectangle((int) x, (int) y, > (int) w, (int) h); space after `if` modules/javafx.web/src/main/java/com/sun/javafx/webkit/prism/WCGraphicsPrismContext.java line 553: > 552: maskTexture.dispose(); > 553: if(g instanceof MaskTextureGraphics && !(g > instanceof PrinterGraphics)) { > 554: MaskTextureGraphics mg = (MaskTextureGraphics) > (g); space after `if` ------------- PR: https://git.openjdk.java.net/jfx/pull/213