Skip to content

Commit 65fb07e

Browse files
committed
extension
1 parent 37835a2 commit 65fb07e

File tree

8 files changed

+19
-20
lines changed

8 files changed

+19
-20
lines changed

packages/flame/lib/src/components/mixins/snapshot.dart

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import 'dart:typed_data';
21
import 'dart:ui';
32

43
import 'package:flame/components.dart';
5-
import 'package:vector_math/vector_math.dart';
4+
import 'package:flame/extensions_matrix4.dart';
65

76
/// A mixin that enables caching a component and all its children. If
87
/// [renderSnapshot] is set to `true`, the component and its children will be
@@ -49,7 +48,7 @@ mixin Snapshot on PositionComponent {
4948
} else {
5049
final recorder = PictureRecorder();
5150
final canvas = Canvas(recorder);
52-
canvas.transform(Float64List.sublistView(transform.storage));
51+
canvas.transform(transform.storage64);
5352
canvas.drawPicture(_picture!);
5453
final picture = recorder.endRecording();
5554
return picture.toImageSync(width, height);
@@ -65,7 +64,7 @@ mixin Snapshot on PositionComponent {
6564
final canvas = Canvas(recorder);
6665
final matrix = transformMatrix.clone();
6766
matrix.invert();
68-
canvas.transform(Float64List.sublistView(matrix.storage));
67+
canvas.transform(matrix.storage64);
6968
super.renderTree(canvas);
7069
_picture = recorder.endRecording();
7170
return _picture!;
@@ -84,7 +83,7 @@ mixin Snapshot on PositionComponent {
8483
takeSnapshot();
8584
}
8685
canvas.save();
87-
canvas.transform(Float64List.sublistView(transformMatrix.storage));
86+
canvas.transform(transformMatrix.storage64);
8887
canvas.drawPicture(_picture!);
8988
canvas.restore();
9089
} else {

packages/flame/lib/src/extensions/canvas.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import 'dart:typed_data';
21
import 'dart:ui';
32

3+
import 'package:flame/extensions_matrix4.dart';
44
import 'package:flame/palette.dart';
55
import 'package:flame/src/extensions/vector2.dart';
66
import 'package:flame/src/game/transform2d.dart';
@@ -60,6 +60,6 @@ extension CanvasExtension on Canvas {
6060

6161
/// Use the [Transform2D] object to [transform] the canvas.
6262
void transform2D(Transform2D transform2D) {
63-
transform(Float64List.sublistView(transform2D.transformMatrix.storage));
63+
transform(transform2D.transformMatrix.storage64);
6464
}
6565
}

packages/flame/lib/src/extensions/matrix4.dart

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:typed_data';
2+
13
import 'package:vector_math/vector_math.dart';
24

35
export 'package:vector_math/vector_math.dart' hide Colors;
@@ -78,6 +80,8 @@ extension Matrix4Extension on Matrix4 {
7880
return transform2(out);
7981
}
8082

83+
Float64List get storage64 => Float64List.sublistView(storage);
84+
8185
/// Create a scaled matrix.
8286
///
8387
/// Scale by a [Vector3], [Vector4], or x,y,z

packages/flame/lib/src/rendering/rotate3d_decorator.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import 'dart:typed_data';
21
import 'dart:ui';
32

3+
import 'package:flame/extensions_matrix4.dart';
44
import 'package:flame/geometry.dart';
55
import 'package:flame/src/rendering/decorator.dart';
6-
import 'package:vector_math/vector_math.dart';
76

87
/// [Rotate3DDecorator] treats the underlying component as if it was a flat
98
/// sheet of paper, and applies a 3D rotation to it.
@@ -62,7 +61,7 @@ class Rotate3DDecorator extends Decorator {
6261
..rotateY(angleY)
6362
..rotateZ(angleZ)
6463
..translate(-center.x, -center.y);
65-
canvas.transform(Float64List.sublistView(matrix.storage));
64+
canvas.transform(matrix.storage64);
6665
draw(canvas);
6766
canvas.restore();
6867
}

packages/flame/lib/src/rendering/shadow3d_decorator.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import 'dart:typed_data';
21
import 'dart:ui';
32

3+
import 'package:flame/extensions_matrix4.dart';
44
import 'package:flame/src/palette.dart';
55
import 'package:flame/src/rendering/decorator.dart';
6-
import 'package:vector_math/vector_math.dart' show Matrix4, Vector2;
76

87
/// [Shadow3DDecorator] casts a realistic-looking shadow from the component
98
/// onto the ground.
@@ -157,7 +156,7 @@ class Shadow3DDecorator extends Decorator {
157156

158157
canvas.saveLayer(null, _paint!);
159158
canvas.translate(base.x + _shift, base.y);
160-
canvas.transform(Float64List.sublistView(_transformMatrix!.storage));
159+
canvas.transform(_transformMatrix!.storage64);
161160
draw(canvas);
162161
canvas.restore();
163162
draw(canvas);

packages/flame/lib/src/rendering/transform2d_decorator.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import 'dart:typed_data';
21
import 'dart:ui';
32

3+
import 'package:flame/extensions_matrix4.dart';
44
import 'package:flame/src/components/position_component.dart';
55
import 'package:flame/src/game/transform2d.dart';
66
import 'package:flame/src/rendering/decorator.dart';
@@ -18,8 +18,7 @@ class Transform2DDecorator extends Decorator {
1818
@override
1919
void apply(void Function(Canvas) draw, Canvas canvas) {
2020
canvas.save();
21-
canvas.transform(
22-
Float64List.sublistView(transform2d.transformMatrix.storage));
21+
canvas.transform(transform2d.transformMatrix.storage64);
2322
draw(canvas);
2423
canvas.restore();
2524
}

packages/flame/lib/src/sprite_batch.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import 'dart:collection';
22
import 'dart:math' show pi;
3-
import 'dart:typed_data';
43
import 'dart:ui';
54

65
import 'package:flame/cache.dart';
76
import 'package:flame/extensions.dart';
7+
import 'package:flame/extensions_matrix4.dart';
88
import 'package:flame/flame.dart';
99
import 'package:flame/game.dart';
1010
import 'package:meta/meta.dart';
11-
import 'package:vector_math/vector_math.dart';
1211

1312
extension SpriteBatchExtension on Game {
1413
/// Utility method to load and cache the image for a [SpriteBatch] based on
@@ -433,7 +432,7 @@ class SpriteBatch {
433432

434433
canvas
435434
..save()
436-
..transform(Float64List.sublistView(batchItem.matrix.storage))
435+
..transform(batchItem.matrix.storage64)
437436
..drawRect(batchItem.destination, batchItem.paint)
438437
..drawImageRect(
439438
atlas,

packages/flame_forge2d/lib/body_component.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ class BodyComponent<T extends Forge2DGame> extends Component
102102
_lastAngle = angle;
103103
}
104104
canvas.save();
105-
canvas.transform(Float64List.sublistView(matrix.storage));
105+
canvas.transform(matrix.storage64);
106106
super.renderTree(canvas);
107107
canvas.restore();
108108
}

0 commit comments

Comments
 (0)