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