Remove hack for OS/2 weights 1..9

This commit is contained in:
Behdad Esfahbod 2018-01-03 16:48:54 +00:00
parent d7d40b5aa8
commit 1fa9cb78c1
2 changed files with 2 additions and 26 deletions

View File

@ -1690,13 +1690,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
if (os2 && os2->version != 0xffff)
{
weight = os2->usWeightClass;
if (weight < 10 && weight_mult != 1.0)
{
/* Work around bad values by cleaning them up before
* multiplying by weight_mult. */
weight = FcWeightToOpenTypeDouble (FcWeightFromOpenTypeDouble (weight));
}
weight = FcWeightFromOpenTypeDouble ((int) (weight * weight_mult + .5));
weight = FcWeightFromOpenTypeDouble (weight * weight_mult);
if ((FcDebug() & FC_DBG_SCANV) && weight != -1)
printf ("\tos2 weight class %d multiplier %g maps to weight %g\n",
os2->usWeightClass, weight_mult, weight);

View File

@ -54,27 +54,9 @@ FcWeightFromOpenTypeDouble (double ot_weight)
{
int i;
/* Loosely based on WPF Font Selection Model's advice. */
if (ot_weight < 0)
return -1;
else if (1 <= ot_weight && ot_weight <= 9)
{
/* WPF Font Selection Model says do "ot_weight *= 100",
* but Greg Hitchcock revealed that GDI had a mapping
* reflected below: */
switch ((int) ot_weight) {
case 1: ot_weight = 80; break;
case 2: ot_weight = 160; break;
case 3: ot_weight = 240; break;
case 4: ot_weight = 320; break;
case 5: ot_weight = 400; break;
case 6: ot_weight = 550; break;
case 7: ot_weight = 700; break;
case 8: ot_weight = 800; break;
case 9: ot_weight = 900; break;
}
}
ot_weight = FC_MIN (ot_weight, map[(sizeof (map) / sizeof (map[0])) - 1].ot);
for (i = 1; ot_weight > map[i].ot; i++)