freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Loading empty bitmap fails?


From: Behdad Esfahbod
Subject: Re: [ft-devel] Loading empty bitmap fails?
Date: Sun, 6 Aug 2017 20:21:43 -0700

On Sun, Aug 6, 2017 at 3:27 AM, Werner LEMBERG <address@hidden> 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



--

reply via email to

[Prev in Thread] Current Thread [Next in Thread]