pack method

Uint8List pack()

Packs the page layout data for transmission to a device.

Implementation

Uint8List pack() {
  if (!isRasterized) {
    throw Exception('Page must be rasterized before packing.');
  }

  final offsets = Uint8List(_lines.length * 4);
  for (int i = 0; i < _lines.length; i++) {
    final line = _lines[i];
    offsets[4 * i] = line.xOffset >> 8;
    offsets[4 * i + 1] = line.xOffset & 0xFF;
    offsets[4 * i + 2] = line.yOffset >> 8;
    offsets[4 * i + 3] = line.yOffset & 0xFF;
  }

  return Uint8List.fromList([
    0xFF, // Header byte
    layout.width >> 8,
    layout.width & 0xFF,
    layout.height >> 8,
    layout.height & 0xFF,
    _sprites.length & 0xFF,
    ...offsets,
  ]);
}