On 19.11.2015 1:49, Edu García wrote:
Also, I realize that I can use the function you provided in your last
email to query per language, but that doesn't change the fact that the
first function (which should return everything AFAIK) is a bit confusing
to use (or gives potentially incorrect results) :)

It basically follows font format I think. If you want to list it all properly to see whole picture, you need to:

- hb_ot_layout_table_get_script_tags() to get all scripts for this font;
- for each script index get all languages supported for this script with hb_ot_layout_script_get_language_tags(); - at this point it's two dimensional - (script index, language index), now get feature set for this pair with hb_ot_layout_language_get_feature_tags().

Obviously you don't need harfbuzz if you only need to list those and not do actual text processing, font file data structures are pretty straightforward.


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

    I see, that's very interesting to know. I'll read that blogpost,
    although it seems that using that method alone won't tell me what
    features are aligned with what languages? Even if order is
    guaranteed, after fiddling a bit I got 11 duplicates for all
    features except for one of them (I got 7 for that one). But unless
    Harfbuzz leaves holes there (I don't see them...) I don't know if
    the first 7 languages contain that feature, or the last 7 ones,
    etc... Hope you understand what I mean.

That's because not every feature has to be present for each script/language. For example for 'latn' script you can have different ligature set depending on actual language.


    In any case, I'll read that blogpost, maybe I'm not getting the full
    extent of what you mean :).

    And no, I don't know what I'm looking for, I'm just trying to list
    the features for every font I load (to display them to the user) but
    I didn't know they're paired with the language, so I might need to
    change my approach :).

    Thanks again!

    On Thu, Nov 19, 2015 at 9:43 AM, Nikolay Sivov <[email protected]
    <mailto:[email protected]>> wrote:

        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 :)


        And if you know what you're looking for specifically, you case
        use hb_ot_layout_language_get_feature_tags().




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

Reply via email to