<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>