generate method

Future<Uint8List> generate({
  1. required SnapshotQuality quality,
  2. required Slide slide,
})

Implementation

Future<Uint8List> generate({
  required SnapshotQuality quality,
  required Slide slide,
}) async {
  final queueKey = shortHashId(slide.raw + quality.name);
  try {
    while (_generationQueue.length > _maxConcurrentGenerations) {
      await Future.delayed(const Duration(milliseconds: 100));
    }

    _generationQueue.add(queueKey);

    final image = await _fromWidgetToImage(
      SlideView.snapshot(slide),
      context: kAppKey.currentContext!,
      pixelRatio: quality.pixelRatio,
      targetSize: kResolution,
    );

    return _imageToUint8List(image);
  } catch (e, stackTrace) {
    log('Error generating image: $e', stackTrace: stackTrace);
    rethrow;
  } finally {
    _generationQueue.remove(queueKey);
  }
}