[ 
https://issues.apache.org/jira/browse/NETBEANS-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eirik Bakke resolved NETBEANS-1583.
-----------------------------------
    Resolution: Won't Fix

See previous comment--closing as won't fix, since SVG loading now replaces this 
functionality.

> Support MultiResolutionImage loading from ImageUtilities 
> ---------------------------------------------------------
>
>                 Key: NETBEANS-1583
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-1583
>             Project: NetBeans
>          Issue Type: Improvement
>          Components: platform - Other
>    Affects Versions: 10.0
>         Environment: Windows, Linux, and MacOS
>            Reporter: Eirik Bakke
>            Priority: Minor
>              Labels: HiDPI
>
> 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 Swing, multi-resolution 
> image assets are supported via the 
> [MultiResolutionImage|https://docs.oracle.com/javase/10/docs/api/java/awt/image/MultiResolutionImage.html]
>  class; such images are automatically loaded by methods such as 
> Toolkit.getImage based on a standard naming convention. For instance, on 
> MacOS, Toolkit.getImage("myicon.png") will also load the file "myi...@2x.png" 
> if present, returning a MultiResolutionImage (implemented in 
> [JDK-8011059|https://bugs.openjdk.java.net/browse/JDK-8011059]). NetBeans' 
> ImageUtilities.loadImage and friends should do the same.
> The same naming convention for multi-resolution image assets should be used 
> as in the JDK. See Philip Race's comment on 
> [JDK-8151787|https://bugs.openjdk.java.net/browse/JDK-8151787] :
> {quote}The proposed name convention for splash screens *and* other multi-res 
> images is @125pct @150pct @200pct @2x @250pct @300pct @3x 
> ie @2x and @3x are supported as synonyms for @200pct and @300pct respectively 
> and also because we already supported @2x on retina Mac.
> {quote}
>  
> On the naming convention, see also 
> [JDK-8090575|https://bugs.openjdk.java.net/browse/JDK-8090575]. Also make 
> sure to retain the ability to add a "_dark" suffix for dark LAFs.
> As far as I know, only MacOS currently supports the automatic loading of such 
> assets via Toolkit.getImage, but both Windows and MacOS (and Linux?) support 
> the underlying MultiResolutionImage class. So it's already possible to 
> implement this on the latest JDK. Note, however, that we should probably wait 
> for [JDK-8212226|https://bugs.openjdk.java.net/browse/JDK-8212226] to be 
> fixed before enabling this on Windows.
> As part of this patch, other ImageUtilities methods such as 
> createDisabledIcon, createDisabledImage, and mergeImages should also be 
> updated to support both MultiResolutionImage and the new 
> org.openide.util.VectorIcon class (introduced at 
> https://github.com/apache/incubator-netbeans/pull/859/files ). Emilian Bold 
> has done some work on this in the past; see 
> https://github.com/emilianbold/nextbeans/commit/0f99dba0c1b3e8e0bc4e7cec407b53d30e85ead1
>  . Eirik Bakke also has a [Pull 
> Request|https://github.com/apache/incubator-netbeans/pull/998] for 
> createDisabledIcon in particular, which works with the VectorIcon class and 
> any other Icon instance.
> Last, note that there are two ways to create icons that look good on HiDPI 
> displays: either by using MultiResolutionImage, or by hand-painting vector 
> graphics in a custom implementation of the Icon class. This issue deals with 
> the MultiResolutionImage approach; the vector painting approach is supported 
> via the existing helper class org.openide.util.VectorIcon. Both approaches 
> are valid and should be supported by the NetBeans Platform. (Update on 
> 2019-05-27: There's a third approach, which is to supply each icon as an SVG 
> file. That one is probably the better approach. See 
> https://issues.apache.org/jira/browse/NETBEANS-2604 .)



--
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