[ 
https://issues.apache.org/jira/browse/NETBEANS-2614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16945370#comment-16945370
 ] 

Eirik Bakke commented on NETBEANS-2614:
---------------------------------------

Hi, Akshat. This patch is already applied to NetBeans 11.1, so if you just use 
the latest version, it should work.

Note that icons will still appear a bit blurry on HiDPI monitors--but the 
scaling looks a little better.

> Improve icon scaling on HiDPI displays, and prepare ImageUtilities for HiDPI 
> icons.
> -----------------------------------------------------------------------------------
>
>                 Key: NETBEANS-2614
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-2614
>             Project: NetBeans
>          Issue Type: Improvement
>          Components: platform - Other
>    Affects Versions: 11.0
>         Environment: Windows, Linux, and MacOS.
>            Reporter: Eirik Bakke
>            Assignee: Eirik Bakke
>            Priority: Major
>              Labels: HiDPI, pull-request-available
>             Fix For: 11.1
>
>         Attachments: Windows 150pct HiDPI Scaling, After Patch.png, Windows 
> 150pct HiDPI Scaling, Before Patch.png, Windows 200pct HiDPI Scaling, After 
> Patch.png, Windows 200pct HiDPI Scaling, Before Patch.png
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> To look good on HiDPI/Retina displays, the NetBeans IDE, and NetBeans 
> Platform (RCP) applications, will eventually need to provide high-resolution 
> versions of various image asset (typically icons). In the shorter term, there 
> are also a few tricks that can be applied to make the existing low-resolution 
> icons render better on HiDPI monitors, such as setting 
> RenderingHints.VALUE_INTERPOLATION_BICUBIC before painting each icon. See the 
> attached before/after screenshots to see the difference (be sure to view the 
> screenshots at 100% scaling).
> Throughout the NetBeans codebase, two different APIs are used interchangeably 
> to represent icon: javax.swing.Icon and java.awt.Image. The NetBeans 
> ImageUtilities class provides methods for loading either, and for converting 
> instances of one to instances the other.
> Having now implementing scalable window system icons (NETBEANS-1238, 
> NETBEANS-1260), prototype SVG icon loading (NETBEANS-2604), and a 
> HiDPI-enabled splash screen ( https://github.com/apache/netbeans/pull/1246 ), 
> the following design seems the most feasible:
> # Scalable icon implementations (such as VectorIcon or a future SVGIcon) 
> should be implemented as custom implementations of the javax.swing.Icon 
> interface.
> # The various methods in ImageUtilities should be updated to preserve custom 
> Icon instances even as an Icon is converted to an Image and back (i.e. make 
> image2Icon(icon2image(icon)) reversible).
> # Other parts of the codebase should be updated as necessary to use 
> ImageUtilities.image2Icon(image) instead of "new ImageIcon(image)", and to 
> use "Icon.paintIcon" instead of "Graphics.drawImage". (Most of the IDE code 
> already does the right thing.)
> This issue tracks the required changes to ImageUtilities, as well as the 
> previously mentioned icon rendering improvements, which will serve as a 
> visual demonstration that the right painting code is being invoked.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to