The general Uniscribe idea is this: 

FIRST, you do GSUB features. 
For them:
* first do the pre-shaping GSUB features for all scripts (ccmp, locl, ltra, 
rtla, ltrm), 
* then do the shaping GSUB features, script-specific features in the order 
defined in the script-specific modules (i.e. sometimes in fixed order, 
sometimes in font-defined order) 
* then do the post-shaping (user-selectable) GSUB features, typically applied 
all at once and executed in the font-defined lookup order 

Only AFTER GSUB processing is complete, you do the GPOS features (otherwise it 
won't make sense), typically applied all at once and executed in the 
font-defined lookup order. 

The "script-specific" column in the table 
http://blog.fontlab.com/font-tech/opentype-layout/opentype-layout-feature-classification/
 documents this. That table was consulted with Microsoft but corrections are 
welcome.

A.

Sent from my mobile phone.

> On 14.10.2014, at 00:01, Bob Hallissy <bob_halli...@sil.org> wrote:
> 
> I apologize in advance if this information is already available -- please 
> just point me to it if so. Or, if it is straightforward to deduce this from 
> the source code, I'm happy to try that -- but I took a brief look and wasn't 
> successful so I'll need some coaching.
> 
> As we are aware, Uniscribe makes multiple passes over the text, more-or-less 
> one pass per feature. In the Arabic spec, for example, Microsoft says:
>> All OTL processing is divided into a set of predefined features(described 
>> and illustrated in the Features section of this document). Each feature is 
>> applied, one by one, to the appropriate glyphs in the syllable and OTLS 
>> processes them. Uniscribe makes as many calls to the OTL Services as there 
>> are features.
> and:
>> Regardless of the model an application chooses for supporting layout of 
>> complex scripts, Uniscribe requires a fixed order for executing features 
>> within a run of text to consistently obtain the proper basic form. This is 
>> achieved by calling features one-by-one in the standard order listed below.
> and finally the list of features, in order: ccmp, isol, fina, medi, init, 
> rlig, calt, liga, dlig, cswh, mset, curs, kern, mark, and mkmk.
> 
> (This is, of course, not what the OT spec says should be done, but that is 
> water under the bridge and we are stuck with Uniscribe compatibility)
> 
> What I'd like to know is what is the equivalent sequence for Harfbuzz?  
> Presumably Harfbuzz implements additional features (clig, locl, rtla, rtlm 
> and salt come to mind) and it would be helpful to know where they fall in the 
> sequence. Also, where do things like Stylistic Sets (ssxx) and Character 
> Variants (cvxx) fall in this list?
> 
> (And while this post is about Arabic, presumably other scripts have similar 
> needs).
> 
> Thanks for any help you can provide,
> 
> Bob
> 
> 
> 
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz
_______________________________________________
HarfBuzz mailing list
HarfBuzz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to