JBR-1314 Font difference in pycharm 2019.1 on Ubuntu

Removed disabling hints on MAX_FCSIZE_LTL_DISABLED font size

(cherry picked from commit 2b99dfed40)
This commit is contained in:
Alexey Ushakov
2019-04-17 22:31:15 +03:00
committed by jbrbot
parent 4ee7747ba4
commit 063ea0f068

View File

@@ -89,7 +89,6 @@
#define DEFAULT_DPI 72
#define MAX_DPI 1024
#define ADJUST_FONT_SIZE(X, DPI) (((X)*DEFAULT_DPI + ((DPI)>>1))/(DPI))
#define MAX_FCSIZE_LTL_DISABLED 12.0
#ifndef DISABLE_FONTCONFIG
#define FONTCONFIG_DLL JNI_LIB_NAME("fontconfig")
@@ -799,21 +798,17 @@ Java_sun_font_FreetypeFontScaler_createScalerContextNative(
#ifndef DISABLE_FONTCONFIG
static void setupLoadRenderFlags(FTScalerContext *context, int fcHintStyle, FcBool fcAutohint, FcBool fcAutohintSet,
FT_Int32 fcLoadFlags, FT_Render_Mode fcRenderFlags, double fcSize)
FT_Int32 fcLoadFlags, FT_Render_Mode fcRenderFlags)
{
if (fcSize > MAX_FCSIZE_LTL_DISABLED || !fcAutohintSet || fcAutohint) {
switch (fcHintStyle) {
case FC_HINT_NONE:
context->loadFlags = FT_LOAD_NO_HINTING;
break;
case FC_HINT_SLIGHT:
context->loadFlags = (fcRenderFlags != FT_RENDER_MODE_MONO) ? FT_LOAD_TARGET_LIGHT : FT_LOAD_NO_HINTING;
break;
default:
context->loadFlags = fcLoadFlags;
}
} else {
context->loadFlags = fcLoadFlags;
switch (fcHintStyle) {
case FC_HINT_NONE:
context->loadFlags = FT_LOAD_NO_HINTING;
break;
case FC_HINT_SLIGHT:
context->loadFlags = (fcRenderFlags != FT_RENDER_MODE_MONO) ? FT_LOAD_TARGET_LIGHT : FT_LOAD_NO_HINTING;
break;
default:
context->loadFlags = fcLoadFlags;
}
context->renderFlags = fcRenderFlags;
@@ -994,10 +989,10 @@ static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo,
if (logFC && fcAutohintSet) fprintf(stderr, "FC_AUTOHINT(%d) ", fcAutohint);
if (context->aaType == TEXT_AA_ON) { // Greyscale AA
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet, FT_LOAD_DEFAULT, FT_RENDER_MODE_NORMAL, fcSize);
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet, FT_LOAD_DEFAULT, FT_RENDER_MODE_NORMAL);
}
else if (context->aaType == TEXT_AA_OFF) { // No AA
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet, FT_LOAD_TARGET_MONO, FT_RENDER_MODE_MONO, fcSize);
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet, FT_LOAD_TARGET_MONO, FT_RENDER_MODE_MONO);
} else {
int fcRGBA = FC_RGBA_UNKNOWN;
if (fcAntialiasSet && fcAntialias) {
@@ -1007,13 +1002,13 @@ static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo,
case FC_RGBA_BGR:
if (logFC) fprintf(stderr, fcRGBA == FC_RGBA_RGB ? "FC_RGBA_RGB " : "FC_RGBA_BGR ");
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet,
FT_LOAD_TARGET_LCD, FT_RENDER_MODE_LCD, fcSize);
FT_LOAD_TARGET_LCD, FT_RENDER_MODE_LCD);
break;
case FC_RGBA_VRGB:
case FC_RGBA_VBGR:
if (logFC) fprintf(stderr, fcRGBA == FC_RGBA_VRGB ? "FC_RGBA_VRGB " : "FC_RGBA_VBGR ");
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet,
FT_LOAD_TARGET_LCD_V, FT_RENDER_MODE_LCD_V, fcSize);
FT_LOAD_TARGET_LCD_V, FT_RENDER_MODE_LCD_V);
break;
case FC_RGBA_NONE:
if (logFC) fprintf(stderr, "FC_RGBA_NONE ");
@@ -1029,10 +1024,10 @@ static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo,
if (context->aaType == TEXT_AA_LCD_HRGB ||
context->aaType == TEXT_AA_LCD_HBGR) {
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet,
FT_LOAD_TARGET_LCD, FT_RENDER_MODE_LCD, fcSize);
FT_LOAD_TARGET_LCD, FT_RENDER_MODE_LCD);
} else {
setupLoadRenderFlags(context, fcHintStyle, fcAutohint, fcAutohintSet,
FT_LOAD_TARGET_LCD_V, FT_RENDER_MODE_LCD_V, fcSize);
FT_LOAD_TARGET_LCD_V, FT_RENDER_MODE_LCD_V);
}
}
}