<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<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:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri","sans-serif";}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">Hi Behdad,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The required features are marked in the published specifications where applicable. For example:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="460" style="width:345.0pt;background:#F7F7F7;border-collapse:collapse">
<thead>
<tr>
<td width="15%" valign="top" style="width:15.0%;border:solid #B6B6B6 1.0pt;background:silver;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Feature<o:p></o:p></span></b></p>
</td>
<td width="65%" valign="top" style="width:65.0%;border:solid #B6B6B6 1.0pt;border-left:none;background:silver;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Feature function<o:p></o:p></span></b></p>
</td>
<td width="10%" valign="top" style="width:10.0%;border:solid #B6B6B6 1.0pt;border-left:none;background:silver;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Layout operation<o:p></o:p></span></b></p>
</td>
<td width="10%" valign="top" style="width:10.0%;border:solid #B6B6B6 1.0pt;border-left:none;background:silver;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Required<o:p></o:p></span></b></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Language based forms:</span></b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"><o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">ccmp<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Character composition/decomposition substitution<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GSUB<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Typographical forms:</span></b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"><o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">liga<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Standard ligature substitution<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GSUB<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">clig<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Contextual ligature substitution<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GSUB<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Positioning features:</span></b><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"><o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">kern<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Pair kerning<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GPOS<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333"> <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">mark<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Mark to base positioning<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GPOS<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">X<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:solid #DBDBDB 1.0pt;border-top:none;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">mkmk<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">Mark to mark positioning<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">GPOS<o:p></o:p></span></p>
</td>
<td valign="top" style="border-top:none;border-left:none;border-bottom:solid #DBDBDB 1.0pt;border-right:solid #DBDBDB 1.0pt;padding:3.75pt 7.5pt 3.75pt 7.5pt">
<p class="MsoNormal" style="margin-bottom:15.0pt"><span style="font-size:10.5pt;font-family:"Verdana","sans-serif";color:#333333">X<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">During Win 8, we added <dist> to the list of required features. Your question has made me realize that I need to update this document.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Note that not all of our engines currently accept custom feature lists. I’m currently working on updating our documentation in this area, and will make sure that specification of all of the required features is up to date.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Cheers,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Andrew<o:p></o:p></p>
<p class="MsoPlainText"><a name="_MailEndCompose"><o:p> </o:p></a></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: Behdad Esfahbod [mailto:behdad.esfahbod@gmail.com] On Behalf Of Behdad Esfahbod<br>
Sent: Friday, August 9, 2013 8:53 AM<br>
To: Andrew Glass (WINDOWS)<br>
Cc: Peter Constable; Harfbuzz<br>
Subject: Re: OpenType features in ScriptShape/PlaceOpenType</p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks Andrew. That's what I suspected. Can you please clarify which features are considered non-required? Is that exactly kern, liga, clig, and calt?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Cheers,<o:p></o:p></p>
<p class="MsoPlainText">behdad<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">On 13-08-09 11:50 AM, Andrew Glass (WINDOWS) wrote:<o:p></o:p></p>
<p class="MsoPlainText">> Hi Behdad,<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Yes, this is the design. If a caller passes a list specifying features they wish to have applied, the need to specify all non-required features. For example, if they want to turn off kern and add tnum they just pass the set of optional
features that they want to have applied.<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Cheers,<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Andrew<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> -----Original Message-----<o:p></o:p></p>
<p class="MsoPlainText">> From: Behdad Esfahbod [<a href="mailto:behdad.esfahbod@gmail.com"><span style="color:windowtext;text-decoration:none">mailto:behdad.esfahbod@gmail.com</span></a>] On Behalf Of
<o:p></o:p></p>
<p class="MsoPlainText">> Behdad Esfahbod<o:p></o:p></p>
<p class="MsoPlainText">> Sent: Friday, August 9, 2013 6:45 AM<o:p></o:p></p>
<p class="MsoPlainText">> To: Andrew Glass (WINDOWS)<o:p></o:p></p>
<p class="MsoPlainText">> Cc: Peter Constable; Harfbuzz<o:p></o:p></p>
<p class="MsoPlainText">> Subject: OpenType features in ScriptShape/PlaceOpenType<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Hi Andrew,<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Is it intentional that specifying any features in ScriptShape/PlaceOpenType disables kern, calt, clig, liga?<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Thanks,<o:p></o:p></p>
<p class="MsoPlainText">> --<o:p></o:p></p>
<p class="MsoPlainText">> behdad<o:p></o:p></p>
<p class="MsoPlainText">> <a href="http://behdad.org/"><span style="color:windowtext;text-decoration:none">http://behdad.org/</span></a><o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">--<o:p></o:p></p>
<p class="MsoPlainText">behdad<o:p></o:p></p>
<p class="MsoPlainText"><a href="http://behdad.org/"><span style="color:windowtext;text-decoration:none">http://behdad.org/</span></a><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</body>
</html>