Hello Semyon,
Please review the updated webrev. http://cr.openjdk.java.net/~rchamyal/8147648/webrev.03/ Regards, Rajeev Chamyal From: Semyon Sadetsky Sent: 14 July 2016 16:58 To: Rajeev Chamyal; swing-dev@openjdk.java.net; Sergey Bylokhov; Alexander Scherbatiy Subject: Re: <Swing Dev>[9] Review Request JDK-8147648 [hidpi] multiresolution image: wrong resolution variant is used as icon in the Unity panel Hi Rajeev, I have added 1px border to the icon in your test: private static BufferedImage generateImage(int scale, Color c) { int x = SZ * scale; BufferedImage img = new BufferedImage(x, x, BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); if (g != null) { g.setColor(c); g.fillRect(0, 0, x, x); g.setColor(Color.YELLOW); g.drawRect(0, 0, x-1, x-1); } return img; } It seems the icon in the taskbar is not correct for UI scale > 1. By the way, graphics object should be disposed using g.dispose() when it is not needed anymore. --Semyon On 14.07.2016 10:08, Rajeev Chamyal wrote: Hello All, Gentle reminder. Please review the updated webrev. http://cr.openjdk.java.net/~rchamyal/8147648/webrev.02/ Update: simplified the test. Regards, Rajeev Chamyal From: Alexandr Scherbatiy Sent: 22 June 2016 15:46 To: Rajeev Chamyal; Sergey Bylokhov; HYPERLINK "mailto:swing-dev@openjdk.java.net"swing-dev@openjdk.java.net Subject: Re: <Swing Dev>[9] Review Request JDK-8147648 [hidpi] multiresolution image: wrong resolution variant is used as icon in the Unity panel The fix looks good to me. Thanks, Alexandr. On 6/22/2016 10:49 AM, Rajeev Chamyal wrote: Hello Alexandr, Thanks for the review. I have updated webrev as per comments. http://cr.openjdk.java.net/~rchamyal/8147648/webrev.01/ Regards, Rajeev Chamyal From: Alexandr Scherbatiy Sent: 21 June 2016 17:37 To: Rajeev Chamyal; Sergey Bylokhov; HYPERLINK "mailto:swing-dev@openjdk.java.net"swing-dev@openjdk.java.net Subject: Re: <Swing Dev>[9] Review Request JDK-8147648 [hidpi] multiresolution image: wrong resolution variant is used as icon in the Unity panel On 6/21/2016 12:16 PM, Rajeev Chamyal wrote: Hello All, Please review the following webrev. Webrev: HYPERLINK "http://cr.openjdk.java.net/%7Erchamyal/8147648/webrev.00/"http://cr.openjdk.java.net/~rchamyal/8147648/webrev.00/ Bug: https://bugs.openjdk.java.net/browse/JDK-8147648 Issue: Wrong resolution variant is used as icon in the Unity panel. Cause: The screen transforms are not applied to find the correct resolution variant image in current implementation. Fix: Applied the screen transforms to graphics object. 222 int scaleX = (int)tx.getScaleX(); 223 int scaleY = (int)tx.getScaleY(); 224 DataBufferInt buffer = new DataBufferInt(scaleX * width * scaleY * height); The fix is in the shared code and the scale factor can have floating point value on Windows. (for example 1.5). It is better to round the final width and height after scaling them. Thanks, Alexandr. Regards, Rajeev Chamyal