freetype-devel
[Top][All Lists]
Advanced

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

Re: [ft-devel] FT_Get_Advance() docs


From: Werner LEMBERG
Subject: Re: [ft-devel] FT_Get_Advance() docs
Date: Thu, 08 Dec 2011 12:07:38 +0100 (CET)

While looking at the whole issue more closely, I've identified at
least four bugsĀ :-(

One is extremely serious, making `FT_Get_Advance' return wrongly
scaled values if fast advance loading isn't available (now fixed in
git).  IMHO, it's very embarassing that we haven't found this scaling
problem earlier.

The next two are more subtle and not directly related to
`FT_Get_Advance' (I get wrong metrics from some fonts), and I need
more investigation to fix them.

For the fourth, see below.

> Another thing we need to document is that the ->glyph instance
> inside the face object might be erased after a call through
> FT_Get_Advance().

Yes.  Can you provide a patch?

> Well, there is also the "problem" that they used the FT_Get_Advance
> API specifying light rendering, just to found out later that the
> lightly hinted advance was actually different...

One important issue has been missed completely by me: Advance widths
don't change during the light hinting process, however, they get
rounded to integer values, similar to TrueType.  After some thinking I
now believe that it is a bug that `FT_Get_Advance' returns unrounded
advance widths for the light hinting mode.

I thus withdraw my previous documentation patch.  Sorry for my
stubbornness.

>>> [...] in TrueType there is a way to get the hinted advances
>>> quicker than executing the full bytecode program, even if it is
>>> not alluded above: when the requested ppem has an associated
>>> hdmx/VDMX table within the font.
>>
>> Do you volunteer to implement support for those two tables?
>
> Yes, I will do that (but not today.)

Great!

> I wonder also about a new demo program to check whether
> FT_Get_Advance() gives, or not, the same results as FT_Load_Glyph().

This might be useful, yes.


    Werner



reply via email to

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