On Thu, 4 Apr 2024 11:41:25 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> wrote:
> > > > > Can you please explain why you need to handle MultiResolutionImage > > > > > for this printing issue for NimbusL&F and why was it not needed for > > > > > other L&F Also, you need to add this bugid to the test > > > > > > > > > > > > The fix is for L&F other than Nimbus. It is working in Nimbus since > > > > Image drawing is handled by SunGraphics2D class in > > > > [drawHIDPIImage()](https://github.com/openjdk/jdk/blob/b9da14012da5f1f72d4f6e690c18a43e87523173/src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java#L3126) > > > > method. Whereas other L&F, pathGraphics handles ImageDrawing where > > > > MultiResolutionImage is not yet handled. The fix which I proposed for > > > > [8210807](https://github.com/openjdk/jdk/commit/38bbbe7588c94d3a0edd1c120ba49cbd0851a720) > > > > bug fixed for Non-Nimbus L&F but caused regression for Nimbus. Hence > > > > after further analysis and study the root cause was found out to be > > > > Non-handling of MultiResolutionImage in > > > > [getBufferedImage()](https://github.com/openjdk/jdk/blob/b9da14012da5f1f72d4f6e690c18a43e87523173/src/java.desktop/share/classes/sun/print/PathGraphics.java#L1122). > > > > > > > > > I guess the PathGraphics path should be used for printing images and > > > should be common for all so why Nimbus is going via SunGraphics2D? [and > > > it seems you updated the summary to include Aqua so Aqua is also going > > > via SunGraphics2D?] > > > > > > Yes, the issue is found in Aqua also and that too uses SunGraphics2D. And > > regarding why SunGraphics2D is used for Nimbus and Aqua, its because in > > Nimbus PeekGraphics is used which in-turn useses SunGraphics2D and in other > > its PW/WPathGraphics. I'm not sure why this is different. > > Can you point to the code where it uses PeekGraphics in Nimbus/Aqua and the > subsequent code from where is starts to bifurcate in other L&F meaning where > it starts to uses PeekGraphics for Nimbus/Aqua and PathGraphics for others? Yeah, it is from RasterPrinterJob class [here](https://github.com/openjdk/jdk/blob/21867c929a2f2c961148f2cd1e79d672ac278d27/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java#L2298). And that is because of nonSolidColors present in Nimbus and Aqua L&F. ------------- PR Comment: https://git.openjdk.org/jdk/pull/18187#issuecomment-2037409936