[HarfBuzz] feature "execution" order

Bob Hallissy bob_hallissy at sil.org
Mon Oct 13 15:01:39 PDT 2014


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
<http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm>, 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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20141013/031812b1/attachment.html>


More information about the HarfBuzz mailing list