parse static method

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

Implementation

static Map<String, dynamic> parse(Uint8List data, offset, length) {
  Map<String, dynamic> obj = {"entries": {}};

  var offset0 = offset;

  offset += 2;
  var svgDocIndexOffset = TyprBin.readUint(data, offset);
  offset += 4;
  offset += 4;

  offset = svgDocIndexOffset + offset0;

  var numEntries = TyprBin.readUshort(data, offset);
  offset += 2;

  for (var i = 0; i < numEntries; i++) {
    var startGlyphID = TyprBin.readUshort(data, offset);
    offset += 2;
    var endGlyphID = TyprBin.readUshort(data, offset);
    offset += 2;
    var svgDocOffset = TyprBin.readUint(data, offset);
    offset += 4;
    var svgDocLength = TyprBin.readUint(data, offset);
    offset += 4;

    // var sbuf = new Uint8Array(data.buffer, offset0 + svgDocOffset + svgDocIndexOffset, svgDocLength);
    int _offset = offset0 + svgDocOffset + svgDocIndexOffset;
    int _length = svgDocLength;
    var sbuf = data.sublist(_offset, _offset + _length);

    var svg = TyprBin.readUTF8(sbuf, 0, sbuf.length);

    for (var f = startGlyphID; f <= endGlyphID; f++) {
      obj["entries"][f] = svg;
    }
  }
  return obj;
}