Subject: Re: bug#29078: 25.2; font issue with FreeType 2.8; should not use the rounded ascender and descender

From: Vincent Lefevre <[email-masked]>
Date: Tue, 31 Oct 2017 14:43:12 +0100

On 2017-10-31 12:22:14 +0100, Werner LEMBERG wrote:
> No.  The `scalable' branch must make a distinction between TrueType
> and non-TrueType fonts if the font gets fully hinted (i.e., if the
> TrueType bytecode gets interpreted), something like
> 
>   if (scalable)
>     {
>       if (use_truetype_bytecode_hinting(font))
>         {
>           /* use TrueType rules for rounding */
>           font->ascent = ROUND(ft_face->ascender * size / upEM)
>           font->descent = ROUND(-ft_face->descender * size / upEM);
>           font->height = font->ascent + font->descent;
>         }
>       else
>         {
>           font->ascent = CEIL(ft_face->ascender * size / upEM);
>           font->descent = FLOOR(-ft_face->descender * size / upEM);
>           font->height = ROUND(ft_face->height * size / upEM);
>         }
>     }
>   ...

FLOOR, CEIL and ROUND round integers to multiples of 64. Don't
you mean floor(), ceil() and round() from <math.h>?

-- 
Vincent Lefèvre <[email-masked]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)