LCOV - code coverage report
Current view: top level - src - flame_mini_sprite.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 17 17 100.0 %
Date: 2022-07-25 12:13:53 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:ui';
       2             : 
       3             : import 'package:flame/sprite.dart';
       4             : import 'package:mini_sprite/mini_sprite.dart';
       5             : 
       6             : /// Adds Flame methods to [MiniSprite].
       7             : extension FlameMiniSpriteX on MiniSprite {
       8             :   /// Returns a [Sprite] representation of the [MiniSprite].
       9           1 :   Future<Sprite> toSprite({
      10             :     required double pixelSize,
      11             :     required Color color,
      12             :     Color? blankColor,
      13             :   }) async {
      14           1 :     final recorder = PictureRecorder();
      15           1 :     final canvas = Canvas(recorder);
      16             : 
      17           2 :     final paint = Paint()..color = color;
      18             :     final blankPaint =
      19           2 :         blankColor != null ? (Paint()..color = blankColor) : null;
      20             : 
      21           4 :     for (var y = 0; y < pixels.length; y++) {
      22           5 :       for (var x = 0; x < pixels[y].length; x++) {
      23           1 :         final rect = Rect.fromLTWH(
      24           1 :           x * pixelSize,
      25           1 :           y * pixelSize,
      26             :           pixelSize,
      27             :           pixelSize,
      28             :         );
      29           3 :         if (pixels[y][x]) {
      30           1 :           canvas.drawRect(rect, paint);
      31             :         } else if (blankPaint != null) {
      32           1 :           canvas.drawRect(rect, blankPaint);
      33             :         }
      34             :       }
      35             :     }
      36             : 
      37           3 :     final image = await recorder.endRecording().toImage(
      38           4 :       pixels.length * pixelSize.toInt(),
      39           5 :       pixels[0].length * pixelSize.toInt(),
      40             :     );
      41             : 
      42           1 :     return Sprite(image);
      43             :   }
      44             : }

Generated by: LCOV version 1.15