freetype
[Top][All Lists]
Advanced

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

bug in FT_Get_Kerning


From: Boris Letocha
Subject: bug in FT_Get_Kerning
Date: Thu, 13 Jul 2000 11:21:20 +0200

Hi!

If driver don't have specified get_kerning "random" values are returned.

Boris Letocha

Look at code:

    FT_Error   error = FT_Err_Ok;
    FT_Driver  driver;
    FT_Memory  memory;

    if ( !face )
      return FT_Err_Invalid_Face_Handle;

    if ( !kerning )
      return FT_Err_Invalid_Argument;

    driver = face->driver;
    memory = driver->root.memory;

    if ( driver->clazz->get_kerning )
    {
      error = driver->clazz->get_kerning( face,
                                          left_glyph,
                                          right_glyph,
                                          kerning );
    }
// here is missing something like:
    else
    {
      error = FT_Big_Problem; // non zero value :-)
    }
// end of missing lines
    if ( !error )
    {
      if ( kern_mode != ft_kerning_unscaled )
      {
        kerning->x = FT_MulFix( kerning->x, face->size->metrics.x_scale );
        kerning->y = FT_MulFix( kerning->y, face->size->metrics.y_scale );

        if ( kern_mode != ft_kerning_unfitted )
        {
          kerning->x = ( kerning->x + 32 ) & -64;
          kerning->y = ( kerning->y + 32 ) & -64;
        }
      }
    }
    else
    {
      kerning->x = 0;
      kerning->y = 0;
    }



reply via email to

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