mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
IDEA-149882 Issue with fonts in Ubuntu 12.04
Provided fallback to default font rendering settings if libfontconfig unable to
match font pattern
(cherry picked from commit d93a5f1598)
This commit is contained in:
@@ -790,6 +790,23 @@ static void setupTransform(FT_Matrix* target, FTScalerContext *context) {
|
||||
}
|
||||
}
|
||||
|
||||
static void setDefaultScalerSettings(FTScalerContext *context) {
|
||||
if (context->aaType == TEXT_AA_OFF) {
|
||||
context->loadFlags = FT_LOAD_TARGET_MONO;
|
||||
} else if (context->aaType == TEXT_AA_ON) {
|
||||
context->loadFlags = FT_LOAD_TARGET_LIGHT;
|
||||
} else {
|
||||
context->lcdFilter = FT_LCD_FILTER_LIGHT;
|
||||
if (context->aaType == TEXT_AA_LCD_HRGB ||
|
||||
context->aaType == TEXT_AA_LCD_HBGR) {
|
||||
context->loadFlags = FT_LOAD_TARGET_LCD;
|
||||
} else {
|
||||
context->loadFlags = FT_LOAD_TARGET_LCD_V;
|
||||
}
|
||||
}
|
||||
context->renderFlags = FT_LOAD_TARGET_MODE(context->loadFlags);
|
||||
}
|
||||
|
||||
static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo, FTScalerContext *context,
|
||||
FT_Bool configureFont) {
|
||||
FT_Matrix matrix;
|
||||
@@ -813,20 +830,7 @@ static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo,
|
||||
context->loadFlags = FT_LOAD_DEFAULT;
|
||||
|
||||
if (libFontConfig == NULL) {
|
||||
if (context->aaType == TEXT_AA_OFF) {
|
||||
context->loadFlags = FT_LOAD_TARGET_MONO;
|
||||
} else if (context->aaType == TEXT_AA_ON) {
|
||||
context->loadFlags = FT_LOAD_TARGET_LIGHT;
|
||||
} else {
|
||||
context->lcdFilter = FT_LCD_FILTER_LIGHT;
|
||||
if (context->aaType == TEXT_AA_LCD_HRGB ||
|
||||
context->aaType == TEXT_AA_LCD_HBGR) {
|
||||
context->loadFlags = FT_LOAD_TARGET_LCD;
|
||||
} else {
|
||||
context->loadFlags = FT_LOAD_TARGET_LCD_V;
|
||||
}
|
||||
}
|
||||
context->renderFlags = FT_LOAD_TARGET_MODE(context->loadFlags);
|
||||
setDefaultScalerSettings(context);
|
||||
return 0;
|
||||
}
|
||||
#ifndef DISABLE_FONTCONFIG
|
||||
@@ -854,7 +858,8 @@ static int setupFTContext(JNIEnv *env, jobject font2D, FTScalerInfo *scalerInfo,
|
||||
if (matchResult != FcResultMatch) {
|
||||
(*FcPatternDestroyPtr)(fcPattern);
|
||||
if (logFC) fprintf(stderr, " - NOT FOUND\n");
|
||||
return 1;
|
||||
setDefaultScalerSettings(context);
|
||||
return 0;
|
||||
}
|
||||
if (logFC) fprintf(stderr, "\nFC_LOG: ");
|
||||
(*FcPatternDestroyPtr)(fcPattern);
|
||||
|
||||
Reference in New Issue
Block a user