On Tue, 21 Jun 2022 03:04:29 GMT, Sergey Bylokhov <[email protected]> wrote:
> Before the JDK-8182043 we also used the MRI so it should be changed if the > scale was changed from low to hidpi. It adds more variants which could be > used by some other DPI, I think one important new variant is the 64x64 > because it used as a large icon on HiDPI monitor. MRI was used only to accommodate for the fact that shell may return icon of higher resolution according the system settings. https://github.com/openjdk/jdk/blob/978bed6c7ff64148474df3dd1ab3b3707005b8fa/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java#L1032-L1034 If the main monitor scale was set to 200% and 16×16 icon was requested, the system returned 32×32. In no way it handled different scale settings. > But if the dpi is 125% or 150% it will not work even if the user will [try > to request](https://github.com/openjdk/jdk/pull/2875#discussion_r641078169) > such image. The current code by @azuev-java handles this situation because the icon returned will contain five variants for the range of 100%, 125%, 150%, 175%, 200%. I don't clearly understand your concern here. > Take a look to the description of 8182043, the user wanted to get some large > Icon, now imaging he would like to get a 79x79 icon for some file, did we > provide a way to do that? I assume we even do not try to request that size > from the operation system so it actually cannot ignore our request? No, we do not request 79×79 because such an icon never exists in Windows because Windows shell does not use such a size to display a file. Well, it may exist if a developer for some reason included it in the app resources but it would rather be an exceptional case. So if a Java app developer wants 79×79 icon, it will be scaled down from 96×96 or 128×128. ------------- PR: https://git.openjdk.org/jdk/pull/7805
