boring-expansion-spec icon indicating copy to clipboard operation
boring-expansion-spec copied to clipboard

[`cmap`] >64k expansion

Open behdad opened this issue 4 years ago • 3 comments

Formats 12/13 already support 32bit glyph indices.

Add format16 subtable, which is exactly like format14, except that whereas format14 uses:

struct UVSMapping {
  uint24 unicodeValue;
  uint16 glyphID;
};

the new format16 will use:

struct UVSMapping {
  uint24 unicodeValue;
  uint24 glyphID;
};

(or uint32, if we choose to go that way instead; but I think 24 is more appropriate).

behdad avatar Sep 14 '21 17:09 behdad

Speced: https://github.com/harfbuzz/boring-expansion-spec/blob/main/beyond-64k.md

behdad avatar Mar 06 '23 20:03 behdad

NOT implemented in HarfBuzz yet.

behdad avatar Mar 06 '23 20:03 behdad

I think we need use offset + index to find glyh, this will significantly compress the length of the cmap table if it is large. just need use uint64 glyphID = (uint64)offset + (uint16)index.

Antecer avatar May 12 '24 16:05 Antecer