[HarfBuzz] HB-NG and Qt

Konstantin Ritt ritt.ks at gmail.com
Tue Nov 4 22:10:51 PST 2014


BTW, according to the bug report, this issue is happening with the default
font on Windows, so it was considered a P1 (critical) issue.

Regards,
Konstantin

2014-11-04 11:18 GMT+04:00 Konstantin Ritt <ritt.ks at gmail.com>:

> The issue appears on Windows indeed. The problematic font was "Tahoma".
> See more details at https://bugreports.qt-project.org/browse/QTBUG-41931 (not
> that many, though).
> The proposed `fontEngine->doKerning(..)` is used either in the HB-old path
> in case the shaper item's `kerning_applied` flag appears to be unset after
> shaping, though there is no similar thing in HB-NG, so I don't think
> applying additional kerning blindly is a good solution in general.
> All `doKerning()` method does is loads the kerning pairs from the font's
> ('k', 'e', 'r', 'n') table and applies kerning metrics. I believe it is
> quite the same HB does.
>
> Regards,
> Konstantin
>
> 2014-11-04 10:51 GMT+04:00 Behdad Esfahbod <behdad at behdad.org>:
>
>> Hi Konstantin?
>>
>> Which font exactly?
>>
>> The rule in HarfBuzz-ng is, if the font has *any* GPOS, then the old-style
>> kern table is not applied.  This is not exactly what OpenType recommends,
>> but
>> is a cleaner approach than applying old-style kern if the GPOS table has
>> no
>> 'kern' feature.
>>
>> At any rate, we need to see what font exactly this is happening with, and
>> what
>> Uniscribe does.
>>
>> IIRC, some fonts shipped with Windows XP or 7 could hit this problem, but
>> hardly any other font we know about.
>>
>> Cheers,
>> behdad
>>
>> PS.  If you write to the list, others can chime in.  Specifically,
>> Jonathan
>> knows a lot about these as they highly care about Windows experience.
>>
>> On 14-11-03 10:43 PM, Konstantin Ritt wrote:
>> > Hi Behdad,
>> >
>> >
>> > As you may know, we've switched to HB-NG as of Qt 5.4 alpha, which is a
>> good
>> > news, of course.
>> > However we didn't drop the HB-old path and it is possible to switch to
>> it,
>> > which is very handy for comparing the shaping/rendering results between
>> HB-NG
>> > and HB-old, BTW.
>> >
>> > Now, here is a bug report
>> https://bugreports.qt-project.org/browse/QTBUG-41931
>> > about kerning issue with some fonts.
>> > I was proposing a quick possible solution w/o expecting it to help...
>> but it
>> > helped, so I'm in doubts:
>> >  ~2 years ago you answered that NG supports both old and new style
>> kerning
>> > just fine (even better than HB-old) by enabling the kern feature, so my
>> code
>> > currently is:
>> > {code}
>> > const hb_feature_t features[1] = {
>> >     { HB_TAG('k','e','r','n'), !!kerningEnabled, 0, uint(-1) }
>> > };
>> > const int num_features = 1;
>> > shapedOk = hb_shape_full(hb_font, buffer, features, num_features, 0);
>> > {code}
>> > but then, I don't understand why applying the old-style kerning
>> manually on
>> > top of HB's results solves the raised issue. Am I missing something?
>> >
>> > Best regards,
>> > Konstantin
>>
>> --
>> behdad
>> http://behdad.org/
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20141105/e93f8a22/attachment.html>


More information about the HarfBuzz mailing list