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.

>     Werner

Freetype-devel mailing list

Reply via email to