mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user