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/ <http://cr.openjdk.java.net/%7Erchamyal/8147648/webrev.02/>

Update: simplified the test.

Regards,

Rajeev Chamyal

*From:*Alexandr Scherbatiy
*Sent:* 22 June 2016 15:46
*To:* Rajeev Chamyal; Sergey Bylokhov; swing-dev@openjdk.java.net <mailto: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/
    <http://cr.openjdk.java.net/%7Erchamyal/8147648/webrev.01/>

    Regards,

    Rajeev Chamyal

    *From:*Alexandr Scherbatiy
    *Sent:* 21 June 2016 17:37
    *To:* Rajeev Chamyal; Sergey Bylokhov; swing-dev@openjdk.java.net
    <mailto: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:
        http://cr.openjdk.java.net/~rchamyal/8147648/webrev.00/
        <http://cr.openjdk.java.net/%7Erchamyal/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


Reply via email to