IDEA-134489 Allow to distinguish jetbrains java

This commit is contained in:
Denis Fokin
2014-12-18 14:01:56 +03:00
parent 31643c2762
commit 59a659d433
5 changed files with 19 additions and 12 deletions
@@ -296,10 +296,7 @@ public class UISettings extends SimpleModificationTracker implements PersistentS
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
}
}
if (Registry.is("force.subpixel.hinting")) {
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value"));
}
UIUtil.setHintingForLCDText(g2d);
}
/**
@@ -49,6 +49,7 @@ public class SystemInfo extends SystemInfoRt {
public static final boolean isAppleJvm = isAppleJvm();
public static final boolean isOracleJvm = isOracleJvm();
public static final boolean isSunJvm = isSunJvm();
public static final boolean isJetbrainsJvm = isJetbrainsJvm();
public static boolean isOsVersionAtLeast(@NotNull String version) {
return StringUtil.compareVersionNumbers(OS_VERSION, version) >= 0;
@@ -223,4 +224,9 @@ public class SystemInfo extends SystemInfoRt {
final String vendor = SystemProperties.getJavaVmVendor();
return vendor != null && StringUtil.containsIgnoreCase(vendor, "Apple");
}
private static boolean isJetbrainsJvm() {
final String vendor = SystemProperties.getJavaVendor();
return vendor != null && StringUtil.containsIgnoreCase(vendor, "jetbrains");
}
}
@@ -131,4 +131,8 @@ public class SystemProperties {
return defaultValue;
}
public static String getJavaVendor() {
return System.getProperty("java.vendor");
}
}
@@ -73,10 +73,7 @@ public class GraphicsUtil {
enableAA ? RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
}
if (Registry.is("force.subpixel.hinting")) {
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
g.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value"));
}
UIUtil.setHintingForLCDText(g);
}
}
@@ -1679,13 +1679,16 @@ public class UIUtil {
Map map = (Map)tk.getDesktopProperty("awt.font.desktophints");
if (map != null) {
g2d.addRenderingHints(map);
if (Registry.is("force.subpixel.hinting")) {
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value"));
}
setHintingForLCDText(g2d);
}
}
public static void setHintingForLCDText(Graphics2D g2d) {
if (SystemInfo.isJetbrainsJvm && Registry.is("force.subpixel.hinting")) {
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value"));
}
}
public static BufferedImage createImage(int width, int height, int type) {
if (isRetina()) {