Set "needRetinaImage" criteria

This commit is contained in:
Anton Tarasov
2017-02-10 17:56:02 +03:00
parent ffdb791880
commit d52f164306
3 changed files with 7 additions and 3 deletions
@@ -524,7 +524,7 @@ public final class IconLoader {
* Retrieves the orig image based on the pixScale.
*/
private Image getOrLoadOrigImage(float pixScale, boolean allowFloatScaling) {
boolean needRetinaImage = (pixScale > 1.0f);
boolean needRetinaImage = ImageUtil.needRetinaImage(pixScale);
Image image = SoftReference.dereference(origImagesCache.get(needRetinaImage));
if (image != null) return image;
@@ -314,7 +314,7 @@ public class ImageLoader implements Serializable {
}
private static float adjustScaleFactor(boolean allowFloatScaling, float scale) {
return allowFloatScaling ? scale : scale > 1.5f ? 2f : 1f;
return allowFloatScaling ? scale : ImageUtil.needRetinaImage(scale) ? 2f : 1f;
}
@NotNull
@@ -362,7 +362,7 @@ public class ImageLoader implements Serializable {
@Nullable
public static Image loadFromResource(@NonNls @NotNull String path, @NotNull Class aClass) {
return ImageDescList.create(path, aClass, UIUtil.isUnderDarcula(), JBUI.pixScale() >= 1.5f, true).
return ImageDescList.create(path, aClass, UIUtil.isUnderDarcula(), ImageUtil.needRetinaImage(JBUI.pixScale()), true).
load(ImageConverterChain.create().withRetina());
}
@@ -111,4 +111,8 @@ public class ImageUtil {
public static Image scaleImage(Image image, float scale) {
return ImageLoader.scaleImage(image, scale);
}
public static boolean needRetinaImage(float scale) {
return scale > 1.5f;
}
}