parse4 static method

Map<String, dynamic> parse4(
  1. Uint8List data,
  2. int offset
)

Implementation

static Map<String, dynamic> parse4(Uint8List data, int offset) {
  int offset0 = offset;
  Map<String, dynamic> obj = {};

  obj["format"] = TyprBin.readUshort(data, offset);
  offset += 2;
  int length = TyprBin.readUshort(data, offset);
  offset += 2;
  offset += 2;
  int segCountX2 = TyprBin.readUshort(data, offset);
  offset += 2;
  int segCount = (segCountX2 / 2).toInt();
  obj["searchRange"] = TyprBin.readUshort(data, offset);
  offset += 2;
  obj["entrySelector"] = TyprBin.readUshort(data, offset);
  offset += 2;
  obj["rangeShift"] = TyprBin.readUshort(data, offset);
  offset += 2;
  obj["endCount"] = TyprBin.readUshorts(data, offset, segCount);
  offset += segCount * 2;
  offset += 2;
  obj["startCount"] = TyprBin.readUshorts(data, offset, segCount);
  offset += segCount * 2;
  obj["idDelta"] = [];
  for (int i = 0; i < segCount; i++) {
    obj["idDelta"].add(TyprBin.readShort(data, offset));
    offset += 2;
  }
  obj["idRangeOffset"] = TyprBin.readUshorts(data, offset, segCount);
  offset += segCount * 2;
  obj["glyphIdArray"] = [];
  while (offset < offset0 + length) {
    obj["glyphIdArray"].add(TyprBin.readUshort(data, offset));
    offset += 2;
  }
  return obj;
}