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.