On 3/1/14 11:28, James Clark wrote:
On Fri, Jan 3, 2014 at 5:07 PM, Jonathan Kew <[email protected]
<mailto:[email protected]>> wrote:


          In order to do fallback,
        you need to do character to glyph mapping.


    Not necessarily. You need to know the character repertoire supported
    by the font, but you may not need to actually map to glyphs. In
    Firefox, for instance, font fallback is done based on a per-font
    *bit* map of supported Unicode codepoints. So at the font fallback
    stage, we know whether the character is present, but do not map it
    to a glyph.


Isn't this introducing an additional step that's not strictly necessary?
Presumably the bitmap is constructed from the font's cmap (unless you
use the OS/2 ulUnicodeCodeRange*, which wouldn't be 100% accurate).

Yes, it's constructed from the cmap; but it allows us to maintain internally-cached character coverage data for all the available fonts (often hundreds or even thousands of them) in a -much- more compact form than keeping whole cmap tables around.

(Somewhat OT: In the context of a web browser, there's also the CSS @font-face unicode-range descriptor to consider [though it's not yet supported in FF]: we may not actually want to use a given font resource for all the characters that its cmap covers. Treating character coverage for font-matching purposes as something distinct from actual cmap tables may be helpful here.)

But obviously, this isn't the only possible approach.

JK

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

Reply via email to