freetype
[Top][All Lists]
Advanced

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

WinFNT driver


From: Boris Letocha
Subject: WinFNT driver
Date: Mon, 17 Jul 2000 13:09:12 +0200

Hi!

I was playing with WinFNT driver and works great ...
I have made change to have some metrics filled (I know that is not fully
finished, but may be this change can help someone) (in winfnt.c):

  static
  FT_Error  FNT_Set_Pixel_Size( FNT_Size  size )
  {
    /* look up a font corresponding to the current pixel size */
    FNT_Face   face  = (FNT_Face)FT_SIZE_FACE( size );
    FNT_Font*  cur   = face->fonts;
    FNT_Font*  limit = cur + face->num_fonts;


    size->font = 0;
    for ( ; cur < limit; cur++ )
    {
      /* we only compare the character height, as fonts used some strange */
      /* values                                                           */
      if ( cur->header.pixel_height == size->root.metrics.y_ppem )
      {
        size->font = cur;
// Here begin my new lines
 
size->root.metrics.ascender=-(cur->header.pixel_height-cur->header.ascent)*6
4;
        size->root.metrics.descender=-cur->header.ascent*64;
        size->root.metrics.height=cur->header.pixel_height*64;
// End of my new lines ...
        break;
      }
    }

    return ( size->font ? FT_Err_Ok : FT_Err_Invalid_Argument );
  }

I have also one proposal. If character was undefined I test it to glyph
number equal zero. But this is not true in WinFNT driver. Glyph zero is
space character/first defined character. So may be some more calculations in
FNT_Get_Char_Index have to be done or provide "undefined character" or
"default character" by FreeType.

Boris Letocha



reply via email to

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