<div dir="ltr"><div dir="ltr">On Mon, May 27, 2019 at 2:21 PM Eli Zaretskii <<a href="mailto:eliz@gnu.org">eliz@gnu.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I cannot figure out in what units are these values reported, or how to<br></blockquote><div><br></div><div>The meaning is left to the client.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
control those units (if they are under the client program's control).<br></blockquote><div><br></div><div>They are controlled mainly using hb_font_set_scale().</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
In particular, I get a huge value of x_advance for the letter U+05EA<br>
HEBREW LETTER TAV when it is followed by U+05BB HEBREW POINT QUBUTS.<br>
The value of x_advance I get is 1229, which is too large even after<br>
dividing by 64 (which, btw, I still am not sure is TRT in my case,<br></blockquote><div><br></div><div>FreeType works in 26.6 fixed-point, ie. 64 units per 1.0.  That's where the 64 value comes from.  And you don't see it in your code because hb_ft_font_create* sets that on hb_font for you.</div><div><br></div><div>In your Windows code, you should call hb_font_set_scale().  I believe right now you are *not* calling, and you get values in the face's UPEM.  That's the default scale for fonts.  You can get the face UPEM using hb_face_get_upem(). </div><div><br></div><div>-- <br></div></div><div dir="ltr" class="gmail_signature">behdad<br><a href="http://behdad.org/" target="_blank">http://behdad.org/</a></div></div>