<Swing Dev> [9] Review Request JDK-8147648 [hidpi] multiresolution image: wrong resolution variant is used as icon in the Unity panel

Semyon Sadetsky semyon.sadetsky at oracle.com
Thu Jul 14 11:28:07 UTC 2016


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 at openjdk.java.net 
> <mailto:swing-dev at 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 at openjdk.java.net
>     <mailto:swing-dev at 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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20160714/b79e380c/attachment.html>


More information about the swing-dev mailing list