<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Paul,</p>
    <p>You don't need to convert the Google Tamil font to OpenType,
      Google has already done that at</p>
    <p><a
href="https://github.com/googlei18n/noto-fonts/tree/master/phaseIII_only/unhinted/otf/NotoSansTamil">https://github.com/googlei18n/noto-fonts/tree/master/phaseIII_only/unhinted/otf/NotoSansTamil</a></p>
    <p>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.</p>
    <p>TrueType fonts can contain OpenType shaping instructions. You do
      not have to have an OpenType font format to use OpenType shaping.</p>
    <p>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.</p>
    <p><a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Fonts">https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Fonts</a></p>
    <p>If I have mis-understood your situation, and/or made any errors
      if what I wrote, I apologize.</p>
    <p>Bobby<br>
    </p>
    <div class="moz-cite-prefix">On 2019-04-10 3:25 p.m., Paul Daughetee
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:MWHPR12MB121549A71C56CC0D3012907FD22E0@MWHPR12MB1215.namprd12.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Mangal;
        panose-1:2 4 5 3 5 2 3 3 2 2;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:3 0 5 9 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">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.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">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.
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><b>From:</b> Cody Planteen
          <a class="moz-txt-link-rfc2396E" href="mailto:planteen@gmail.com"><planteen@gmail.com></a> <br>
          <b>Sent:</b> April 10, 2019 12:38 PM<br>
          <b>To:</b> Paul Daughetee <a class="moz-txt-link-rfc2396E" href="mailto:Daughetee@finaldraft.com"><Daughetee@finaldraft.com></a><br>
          <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:harfbuzz@lists.freedesktop.org">harfbuzz@lists.freedesktop.org</a><br>
          <b>Subject:</b> Re: [HarfBuzz] Question on converting UTF-8
          codepoints to complex glyphs<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div>
            <div>
              <p class="MsoNormal">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.<o:p></o:p></p>
            </div>
            <div>
              <p class="MsoNormal"><o:p> </o:p></p>
            </div>
            <div>
              <p class="MsoNormal"><a
                  href="https://www.high-logic.com/font-editor/fontcreator"
                  moz-do-not-send="true">https://www.high-logic.com/font-editor/fontcreator</a><o:p></o:p></p>
            </div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <p class="MsoNormal">On Wed, Apr 10, 2019 at 1:19 PM Paul
            Daughetee <<a href="mailto:Daughetee@finaldraft.com"
              moz-do-not-send="true">Daughetee@finaldraft.com</a>>
            wrote:<o:p></o:p></p>
        </div>
        <div>
          <div>
            <p class="MsoNormal"
              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
            <p class="MsoNormal"
              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
            <p class="MsoNormal"
              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b>
              Behdad Esfahbod <<a href="mailto:behdad@behdad.org"
                target="_blank" moz-do-not-send="true">behdad@behdad.org</a>>
              <br>
              <b>Sent:</b> April 8, 2019 1:47 PM<br>
              <b>To:</b> Paul Daughetee <<a
                href="mailto:Daughetee@finaldraft.com" target="_blank"
                moz-do-not-send="true">Daughetee@finaldraft.com</a>><br>
              <b>Cc:</b> <a
                href="mailto:harfbuzz@lists.freedesktop.org"
                target="_blank" moz-do-not-send="true">harfbuzz@lists.freedesktop.org</a><br>
              <b>Subject:</b> Re: [HarfBuzz] Question on converting
              UTF-8 codepoints to complex glyphs<o:p></o:p></p>
            <p class="MsoNormal"
              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
            <div>
              <div>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On
                  Mon, Apr 8, 2019 at 4:12 PM Paul Daughetee <<a
                    href="mailto:Daughetee@finaldraft.com"
                    target="_blank" moz-do-not-send="true">Daughetee@finaldraft.com</a>>
                  wrote:<o:p></o:p></p>
              </div>
              <div>
                <blockquote style="border:none;border-left:solid
                  windowtext 1.0pt;padding:0in 0in 0in
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor
                  currentcolor currentcolor rgb(204,204,204)">
                  <div>
                    <div>
                      <p class="MsoNormal"
                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
                    </div>
                  </div>
                </blockquote>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Yes.<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                </div>
                <blockquote style="border:none;border-left:solid
                  windowtext 1.0pt;padding:0in 0in 0in
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor
                  currentcolor currentcolor rgb(204,204,204)">
                  <div>
                    <div>
                      <p class="MsoNormal"
                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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!<o:p></o:p></p>
                    </div>
                  </div>
                </blockquote>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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. <o:p></o:p></p>
                </div>
                <blockquote style="border:none;border-left:solid
                  windowtext 1.0pt;padding:0in 0in 0in
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt;border-color:currentcolor
                  currentcolor currentcolor rgb(204,204,204)">
                  <div>
                    <div>
                      <p class="MsoNormal"
                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                    </div>
                  </div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_______________________________________________<br>
                    HarfBuzz mailing list<br>
                    <a href="mailto:HarfBuzz@lists.freedesktop.org"
                      target="_blank" moz-do-not-send="true">HarfBuzz@lists.freedesktop.org</a><br>
                    <a
                      href="https://lists.freedesktop.org/mailman/listinfo/harfbuzz"
                      target="_blank" moz-do-not-send="true">https://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><o:p></o:p></p>
                </blockquote>
              </div>
              <p class="MsoNormal"
                style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><br
                  clear="all">
                <o:p></o:p></p>
              <div>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
              </div>
              <p class="MsoNormal"
                style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
                <o:p></o:p></p>
              <div>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">behdad<br>
                  <a href="http://behdad.org/" target="_blank"
                    moz-do-not-send="true">http://behdad.org/</a><o:p></o:p></p>
              </div>
            </div>
          </div>
        </div>
        <p class="MsoNormal">_______________________________________________<br>
          HarfBuzz mailing list<br>
          <a href="mailto:HarfBuzz@lists.freedesktop.org"
            target="_blank" moz-do-not-send="true">HarfBuzz@lists.freedesktop.org</a><br>
          <a
            href="https://lists.freedesktop.org/mailman/listinfo/harfbuzz"
            target="_blank" moz-do-not-send="true">https://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><o:p></o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
HarfBuzz mailing list
<a class="moz-txt-link-abbreviated" href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/harfbuzz">https://lists.freedesktop.org/mailman/listinfo/harfbuzz</a></pre>
    </blockquote>
    <div class="moz-signature">-- <br>
      Bobby de Vos<br>
      <em><a class="moz-txt-link-abbreviated" href="mailto:bobby_devos@sil.org">bobby_devos@sil.org</a></em><br>
    </div>
  </body>
</html>