parse static method

Map<String, dynamic> parse(
  1. Uint8List data,
  2. int offset,
  3. int length,
  4. dynamic font,
)

Implementation

static Map<String,dynamic> parse(Uint8List data, int offset, int length, font) {
  int version = TyprBin.readUshort(data, offset);
  offset += 2;
  if (version == 1) return parseV1(data, offset - 2, length, font);
  int nTables = TyprBin.readUshort(data, offset);
  offset += 2;

  Map<String,dynamic> map = {"glyph1": [], "rval": []};
  for (int i = 0; i < nTables; i++) {
    offset += 2; // skip version
    offset += 2;
    int coverage = TyprBin.readUshort(data, offset);
    offset += 2;
    int format = coverage >> 8;
    /* I have seen format 128 once, that's why I do */ format &= 0xf;
    if (format == 0)
      offset = readFormat0(data, offset, map);
    else
      throw "unknown kern table format: ${format}";
  }
  return map;
}