On 19.11.2015 0:45, Edu García wrote:
It worked, as expected :).

However, I'm getting some curious results, and I'm not sure if it's
because of my C rustiness or the fact that I'm running Harfbuzz with
Emscripten, but just in case, I'll ask:

With this simple code:

unsigned int count = 80;
hb_tag_t myResult[count];
hb_ot_layout_table_get_feature_tags(hb_font_get_face(hb_font),
HB_OT_TAG_GSUB, 0, &count, myResult);

...I'm getting exactly 11 copies of every tag inside the myResult array
(so positions 0-10 contain "aalt", positions 11-21 contain "c2sc", etc).

Is this expected, a bug (I'm using 1.0.6) or am I doing something
glaringly wrong there?

Thanks, and sorry for the annoying questions :)

My guess would be that it returns duplicates because features are not on their own in opentype, they are tied to script/language pair. So font can define a set of features separately for each script/language pair. I think FeatureCount field of FeatureList table contains total feature count, so if you have ligatures defined for several languages for example you'll get as many 'liga' features. That's probably what you see. Take a look at [1], specifically Table organization section.

[1] https://www.microsoft.com/typography/otspec/chapter2.htm


On Thu, Nov 19, 2015 at 7:13 AM, Edu García <[email protected]
<mailto:[email protected]>> wrote:

    Thank you both, that's very helpful!

    I'll give it a try later, and maybe open a PR to add doc to them
    (the lack of docs is a bit problematic for a project this complex)

    On Nov 18, 2015 11:43 PM, "Adam Twardoch (List)"
    <[email protected] <mailto:[email protected]>> wrote:


         > On 18 Nov 2015, at 13:40, Nikolay Sivov <[email protected]
        <mailto:[email protected]>> wrote:
         >
         > On 18.11.2015 15:27, Edu García wrote:
         >> Thank you!
         >>
         >> That's the one I suspected. However, as its second
        parameter, it wants a
         >> "hb_tag_t table_tag". What is that table tag, and how do I
        get it?
         >
         > There's only two possible tags you can use in this case -
        HB_OT_TAG_GSUB and HB_OT_TAG_GPOS.

        Yes, giving HB_OT_TAG_GSUB will get you the list of substitution
        features in the font and HB_OT_TAG_GPOS will give you the list
        of positioning features. GSUB features are always applied before
        GPOS features. It's possible that the same feature is defined in
        both tables, then the GSUB portion of the feature will be
        applied first, GPOS later.

        A.



_______________________________________________
HarfBuzz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to