freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] Improved handling of ascender and descender


From: Werner LEMBERG
Subject: [ft-devel] Improved handling of ascender and descender
Date: Sun, 03 Jul 2011 11:41:03 +0200 (CEST)

Folks,


I'm going to apply the change below (in sfnt/sfobjs.c).  Only if a
font has zero values for `hhea' table's ascender and descender,
FreeType tries harder to find reasonable values.

Any objections?


    Werner


======================================================================

old code:

  root->ascender  = face->horizontal.Ascender;
  root->descender = face->horizontal.Descender;

  root->height    = (FT_Short)( root->ascender - root->descender +
                                face->horizontal.Line_Gap );

======================================================================

new code:

  root->ascender  = face->horizontal.Ascender;
  root->descender = face->horizontal.Descender;

  root->height = (FT_Short)( root->ascender - root->descender +
                             face->horizontal.Line_Gap );

  if ( !( root->ascender || root->descender ) )
  {
    if ( face->os2.version != 0xFFFFU )
    {
      if ( face->os2.sTypoAscender || face->os2.sTypoDescender )
      {
        root->ascender  = face->os2.sTypoAscender;
        root->descender = face->os2.sTypoDescender;

        root->height = (FT_Short)( root->ascender - root->descender +
                                   face->os2.sTypoLineGap );
      }
      else
      {
        root->ascender  =  (FT_Short)face->os2.usWinAscent;
        root->descender = -(FT_Short)face->os2.usWinDescent;

        root->height = (FT_UShort)( root->ascender - root->descender );
      }
    }
  }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]