Hi, Pankaj.
The BufferedImage class is a raster in the memory which should be unrelated to any grpahics config on the system. So this class should not be changed, but instead you should create a correct BI-as a back buffer which takes into account the size of the window and the scale of the GC.

On 31/10/2017 04:59, Pankaj Bansal wrote:
Hi All,

Please review the fix for JDK 10.

Bug:

https://bugs.openjdk.java.net/browse/JDK-8164811

Webrev:

http://cr.openjdk.java.net/~pbansal/8164811/webrev.00/

Issue:

The tests given in the bug were failing when run with OpenGL and GDI. This bug is related to https://bugs.openjdk.java.net/browse/JDK-8189257 which states that that HIDPI does not work with swing components when Translucent window is used. Because of which all the tests in the bug were failing.

Fix:

The TranslucentWindowPainter class was creating BufferedImage for OpenGL (when /forceOpt/ is false) and GDI pipeline, but it is not considering the device HiDPI scale. There is no way to create a scaled BufferedImage because of which the scale value in BufImgSurfaceData is always 1. Made changes to store graphics config in Buffered image, so that the BufImgSurfaceManager can create BufImgSurfaceData with scale set properly.

This fix also fixes https://bugs.openjdk.java.net/browse/JDK-8189257

Regards,

Pankaj Bansal



--
Best regards, Sergey.

Reply via email to