<div dir="ltr">BTW, according to the bug report, this issue is happening with the default font on Windows, so it was considered a P1 (critical) issue.</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">Regards,<br>Konstantin</div></div>
<br><div class="gmail_quote">2014-11-04 11:18 GMT+04:00 Konstantin Ritt <span dir="ltr"><<a href="mailto:ritt.ks@gmail.com" target="_blank">ritt.ks@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">The issue appears on Windows indeed. The problematic font was "Tahoma".</div><div class="gmail_extra">See more details at <a href="https://bugreports.qt-project.org/browse/QTBUG-41931" target="_blank"><font color="#0066cc">https://bugreports.qt-project.</font><font color="#0066cc">org/browse/QTBUG-41931</font></a> (not that many, though).<br clear="all"></div><div class="gmail_extra">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.</div><div class="gmail_extra">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.</div><div class="gmail_extra"> </div><div class="gmail_extra"><div>Regards,<br>Konstantin</div></div><div><div class="h5"><div class="gmail_extra">
<br></div><div class="gmail_quote">2014-11-04 10:51 GMT+04:00 Behdad Esfahbod <span dir="ltr"><<a href="mailto:behdad@behdad.org" target="_blank">behdad@behdad.org</a>></span>:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote">Hi Konstantin?<br>
<br>
Which font exactly?<br>
<br>
The rule in HarfBuzz-ng is, if the font has *any* GPOS, then the old-style<br>
kern table is not applied.  This is not exactly what OpenType recommends, but<br>
is a cleaner approach than applying old-style kern if the GPOS table has no<br>
'kern' feature.<br>
<br>
At any rate, we need to see what font exactly this is happening with, and what<br>
Uniscribe does.<br>
<br>
IIRC, some fonts shipped with Windows XP or 7 could hit this problem, but<br>
hardly any other font we know about.<br>
<br>
Cheers,<br>
behdad<br>
<br>
PS.  If you write to the list, others can chime in.  Specifically, Jonathan<br>
knows a lot about these as they highly care about Windows experience.<br>
<div><div><br>
On 14-11-03 10:43 PM, Konstantin Ritt wrote:<br>
> Hi Behdad,<br>
><br>
><br>
> As you may know, we've switched to HB-NG as of Qt 5.4 alpha, which is a good<br>
> news, of course.<br>
> However we didn't drop the HB-old path and it is possible to switch to it,<br>
> which is very handy for comparing the shaping/rendering results between HB-NG<br>
> and HB-old, BTW.<br>
><br>
> Now, here is a bug report <a href="https://bugreports.qt-project.org/browse/QTBUG-41931" target="_blank">https://bugreports.qt-project.org/browse/QTBUG-41931</a><br>
> about kerning issue with some fonts.<br>
> I was proposing a quick possible solution w/o expecting it to help... but it<br>
> helped, so I'm in doubts:<br>
>  ~2 years ago you answered that NG supports both old and new style kerning<br>
> just fine (even better than HB-old) by enabling the kern feature, so my code<br>
> currently is:<br>
> {code}<br>
> const hb_feature_t features[1] = {<br>
>     { HB_TAG('k','e','r','n'), !!kerningEnabled, 0, uint(-1) }<br>
> };<br>
> const int num_features = 1;<br>
> shapedOk = hb_shape_full(hb_font, buffer, features, num_features, 0);<br>
> {code}<br>
> but then, I don't understand why applying the old-style kerning manually on<br>
> top of HB's results solves the raised issue. Am I missing something?<br>
><br>
> Best regards,<br>
> Konstantin<br>
<br>
</div></div><span><font color="#888888">--<br>
behdad<br>
<a href="http://behdad.org/" target="_blank">http://behdad.org/</a><br>
</font></span></blockquote></div><div class="gmail_extra"><br></div></div></div></div>
</blockquote></div><br></div>