Handle UltraBlack weight.

UltraBlack is weight 950 on the CSS scale; handle this by name and value
encoding it as fontconfig weight 215.
This commit is contained in:
Keith Packard 2007-10-25 01:03:40 -07:00
parent d02f6a70f1
commit 79641a3b0c
2 changed files with 8 additions and 1 deletions

View File

@ -136,6 +136,8 @@ typedef int FcBool;
#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
#define FC_WEIGHT_BLACK 210
#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
#define FC_WEIGHT_EXTRABLACK 215
#define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
#define FC_SLANT_ROMAN 0
#define FC_SLANT_ITALIC 100

View File

@ -982,6 +982,9 @@ static const FcStringConst weightConsts[] = {
{ (FC8) "superbold", FC_WEIGHT_EXTRABOLD },
{ (FC8) "ultrabold", FC_WEIGHT_ULTRABOLD },
{ (FC8) "bold", FC_WEIGHT_BOLD },
{ (FC8) "ultrablack", FC_WEIGHT_ULTRABLACK },
{ (FC8) "superblack", FC_WEIGHT_EXTRABLACK },
{ (FC8) "extrablack", FC_WEIGHT_EXTRABLACK },
{ (FC8) "black", FC_WEIGHT_BLACK },
{ (FC8) "heavy", FC_WEIGHT_HEAVY },
};
@ -1439,8 +1442,10 @@ FcFreeTypeQueryFace (const FT_Face face,
weight = FC_WEIGHT_BOLD;
else if (os2->usWeightClass < 850)
weight = FC_WEIGHT_EXTRABOLD;
else if (os2->usWeightClass < 950)
else if (os2->usWeightClass < 925)
weight = FC_WEIGHT_BLACK;
else if (os2->usWeightClass < 1000)
weight = FC_WEIGHT_EXTRABLACK;
if ((FcDebug() & FC_DBG_SCANV) && weight != -1)
printf ("\tos2 weight class %d maps to weight %d\n",
os2->usWeightClass, weight);