screenshot method

  1. @override
Future<List<int>> screenshot()
override

Implementation

@override
Future<List<int>> screenshot() {
  var renderObject = nativeDriver.binding.renderViewElement?.renderObject;

  while (renderObject != null && !renderObject.isRepaintBoundary) {
    renderObject = renderObject.parent as RenderObject;
  }

  assert(renderObject != null && !renderObject.debugNeedsPaint);
  final layer = renderObject!.debugLayer as OffsetLayer;

  return layer
      .toImage(renderObject.semanticBounds)
      .then((value) => value.toByteData(format: ui.ImageByteFormat.png))
      .then((value) => value?.buffer.asUint8List() ?? List<int>.empty());
}