[HarfBuzz] Question on converting UTF-8 codepoints to complex glyphs

Bobby de Vos bobby_devos at sil.org
Thu Apr 11 15:34:32 UTC 2019


Paul,

You don't need to convert the Google Tamil font to OpenType, Google has
already done that at

https://github.com/googlei18n/noto-fonts/tree/master/phaseIII_only/unhinted/otf/NotoSansTamil

However, I don't think those fonts will solve your issue. The list of
shapers that you mention are different technologies to specify the
complex shaping (such ligatures, positioning, sub forms, half foms,
etc). Indeed, OpenType is one such technology. SIL Graphite and Apple
Advanced Typography (AAT) are other technologies to do this.

TrueType fonts can contain OpenType shaping instructions. You do not
have to have an OpenType font format to use OpenType shaping.

TrueType fonts have quadratic Bézier curves for their glyphs. Fonts in
the OpenType font format can use the same quadratic Bézier curves, or
cubic Bézier curves. The OTF files I mentioned above have cubic Bézier
curves.

https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Fonts

If I have mis-understood your situation, and/or made any errors if what
I wrote, I apologize.

Bobby

On 2019-04-10 3:25 p.m., Paul Daughetee wrote:
>
> Thanks for the quick response. I’m a licensed user of FontCreator
> Professional Edition from High-Logic and have the most recent update
> to version 11.5 installed.  The correct ligature is displayed when I
> type the tta and u Tamil characters into the test string edit box in
> the OpenType Designer dialog. In the box just below the test string
> the two characters are displayed unless I check either the _shaper or
> psts feature check box. If one of those is checked, then the correct
> ligature is displayed. So I guess Google did get the Tamil font right
> but I cannot seem to get HarfBuzz to return a single glyph id when
> presented with a buffer containing the tta and u Tamil characters.
> I’ve tried adding various features when calling hb_shape but that
> doesn’t seem to change anything.
>
>  
>
> I noticed that when I list shapers using a call to
> hb_shape_list_shapers, the only shaper listed is “ot”. So I guess my
> next try will be to convert the Google Tamil true type font to an open
> type font and see if that makes any difference. If it does, I guess
> I’ll be having a “duh” moment.
>
>  
>
> *From:* Cody Planteen <planteen at gmail.com>
> *Sent:* April 10, 2019 12:38 PM
> *To:* Paul Daughetee <Daughetee at finaldraft.com>
> *Cc:* harfbuzz at lists.freedesktop.org
> *Subject:* Re: [HarfBuzz] Question on converting UTF-8 codepoints to
> complex glyphs
>
>  
>
> It's possible your font isn't doing what you think it should be. You
> can test this theory with the tool High-Logic FontCreator for Windows.
> I believe there is a free evaluation. You can open up your font, then
> go to Font -> OpenType Designer. In this dialog, you can enter your
> test string and see what glyphs come out.
>
>  
>
> https://www.high-logic.com/font-editor/fontcreator
>
>  
>
>  
>
> On Wed, Apr 10, 2019 at 1:19 PM Paul Daughetee
> <Daughetee at finaldraft.com <mailto:Daughetee at finaldraft.com>> wrote:
>
> Let me give you a little more info. I just recently built and
> installed vcpkg and used it to install HarfBuzz on Windows 10. It
> installed version 2.3.1-3 of the static libraries for Window x86. I
> linked my app to the HarfBuzz library and its dependencies. I added
> code to my app to capture single words that I could send to be
> processed by HarfBuzz as they were typed by the user. I installed
> Google’s NotoSansTamil true type font after verifying that it properly
> defined substitutions for the ligature that is formed by the Tamil
> consonant “tta” when paired with a vowel such as “u” or “I”. After
> processing a UTF-8 string containing the consonant and the vowel “tta”
> and “u” [0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0x89], the hb_glyph_info_t
> object I get back has tow glyph indices, the same indices as the “tta”
> and “u” (17, 10) rather than the index for the “ttauvowelsign” (116)
> ligature I expected. My code is virtually identical to the examples
> found in the HarfBuzz wiki and to several examples found in git. Any
> help here would be greatly appreciated.
>
>  
>
> *From:* Behdad Esfahbod <behdad at behdad.org <mailto:behdad at behdad.org>>
> *Sent:* April 8, 2019 1:47 PM
> *To:* Paul Daughetee <Daughetee at finaldraft.com
> <mailto:Daughetee at finaldraft.com>>
> *Cc:* harfbuzz at lists.freedesktop.org
> <mailto:harfbuzz at lists.freedesktop.org>
> *Subject:* Re: [HarfBuzz] Question on converting UTF-8 codepoints to
> complex glyphs
>
>  
>
> On Mon, Apr 8, 2019 at 4:12 PM Paul Daughetee
> <Daughetee at finaldraft.com <mailto:Daughetee at finaldraft.com>> wrote:
>
>     I’m new to HarfBuzz and attempting to use it for converting a
>     UTF-8 string that contains one or more sets of codepoints that
>     should combine to form single complex glyphs to the correct string
>     of glyphs. I’ve followed numerous examples and they all lead me to
>     the point where I use hb_buffer_get_glyph_infos to get what I
>     thought would be a hb_glyph_info object that contains the
>     codepoints for the glyphs I seek. So my first question is as
>     follows. Is that what I should be getting? I ask because I’m not
>     getting what I would expect to get.
>
>  
>
> Yes.
>
>  
>
>  
>
>     I can’t even successfully get a complex glyph to represent the
>     combination of the letter A and the grave accent. So if I’m just
>     confused as to how or what HarfBuzz does, please help me find a
>     better path. Thanks!
>
>  
>
> What do you get?  A + grave-accent only forms one glyph if the font
> was designed so.  It may very well be represented by two glyphs. 
>
>      
>
>     _______________________________________________
>     HarfBuzz mailing list
>     HarfBuzz at lists.freedesktop.org <mailto:HarfBuzz at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
>
>  
>
> -- 
>
> behdad
> http://behdad.org/
>
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org <mailto:HarfBuzz at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
>
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
-- 
Bobby de Vos
/bobby_devos at sil.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/harfbuzz/attachments/20190411/554cc770/attachment-0001.html>


More information about the HarfBuzz mailing list