On Sun, Aug 6, 2017 at 3:27 AM, Werner LEMBERG <w...@gnu.org> wrote:
> >> Indeed. Can you give me pointers to the OpenType specification where
> >> this situation is covered? Currently, I don't find it...
> > I cannot, because as it happens nowhere it says that it is an error
> > if a strike does not contain an image for a glyph. :-)
> Good to hear the confirmation :-)
> > Joking aside, from the spec's point of view, bitmaps always
> > accompanied outline shapes. In that situation, a missing bitmap
> > meant "use outline". With CBLT/CBDT color fonts, there is no
> > outlines and it is expected that any needed shape be present in all
> > strikes. I think it's a logical follow up that if a strike does not
> > provide a bitmap for a glyph, that glyph has no drawing.
> Mhmm. I would like to have this formalized. Let's have a closer look
> at NotoColorEmoji.ttf. The `cmap' table references glyph index 3 for
> character code 0x20 (ttx calls this glyph `space'). GID 3 is also
> used in the `hmtx' and `vmtx' tables. However, it is missing in the
> `CBDT' table, and there is no `loca' table either.
> So the basic question is `what defines GID 3'? IMHO it is not
> sufficient to have a `cmap' entry. Maybe accept it only if there is
> no `loca' table but an `hmtx' or `vmtx' entry?
GID 3 exists because numGlyphs > 3. hmtx / vmtx is irrelevant. GID 3 is
addressable because it's referenced by a cmap entry. GID 3 has no drawing,
because no graphic table (glyf, CFF, CBDT, etc) provides any drawing for it.
> How do the Apple and MS rendering engines behave?
Donno. MS supports CBDT fonts. I have not tested. Don't have a Windows
machine or access to one these days.
Freetype-devel mailing list