Skip to content

Commit ed2edbe

Browse files
[web] Address PR review comments
1 parent 98326f0 commit ed2edbe

3 files changed

Lines changed: 12 additions & 9 deletions

File tree

‎engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/picture.dart‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ class CkPicture implements LayerPicture, StackTraceDebugger {
2424
skPicture,
2525
this,
2626
'Picture',
27-
onDispose: (SkPicture _) {
28-
imageTracker?.releaseAll();
29-
},
27+
onDispose: imageTracker == null
28+
? null
29+
: (SkPicture _) {
30+
imageTracker!.releaseAll();
31+
},
3032
);
3133
_initStackTrace();
3234
}

‎engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/canvas.dart‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ import 'package:ui/ui.dart' as ui;
1111

1212
class SkwasmCanvas implements LayerCanvas {
1313
/// Creates a canvas that records drawing commands into [recorder] bounded by [cullRect].
14-
factory SkwasmCanvas(SkwasmPictureRecorder recorder, ui.Rect cullRect) {
14+
factory SkwasmCanvas(ui.PictureRecorder recorder, [ui.Rect? cullRect]) {
1515
if (recorder.isRecording) {
1616
throw ArgumentError('"recorder" must not already be associated with another Canvas.');
1717
}
18-
return recorder.beginRecording(cullRect);
18+
cullRect ??= ui.Rect.largest;
19+
final skwasmRecorder = recorder as SkwasmPictureRecorder;
20+
return skwasmRecorder.beginRecording(cullRect);
1921
}
2022

2123
/// Creates a [SkwasmCanvas] wrapping an underlying native [_handle].
@@ -389,11 +391,11 @@ class SkwasmCanvas implements LayerCanvas {
389391
/// Retains any image sources referenced by [paint] (such as an [ImageShader]).
390392
@override
391393
void drawVertices(ui.Vertices vertices, ui.BlendMode blendMode, ui.Paint paint) {
392-
_tracker?.recordPaint(paint);
393394
final skwasmVertices = (vertices as EngineVertices).delegate as SkwasmVertices?;
394395
if (skwasmVertices == null) {
395396
return;
396397
}
398+
_tracker?.recordPaint(paint);
397399
final PaintHandle paintHandle = (paint as SkwasmPaint).toRawPaint();
398400
canvasDrawVertices(_handle, skwasmVertices.handle, blendMode.index, paintHandle);
399401
paintDispose(paintHandle);

‎engine/src/flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,8 @@ class SkwasmRenderer extends Renderer {
2828
final SkwasmFontCollection fontCollection = SkwasmFontCollection();
2929

3030
@override
31-
ui.Canvas createCanvas(ui.PictureRecorder recorder, [ui.Rect? cullRect]) {
32-
return SkwasmCanvas(recorder as SkwasmPictureRecorder, cullRect ?? ui.Rect.largest);
33-
}
31+
ui.Canvas createCanvas(ui.PictureRecorder recorder, [ui.Rect? cullRect]) =>
32+
SkwasmCanvas(recorder, cullRect);
3433

3534
@override
3635
BackendImageFilter createBlurImageFilter({

0 commit comments

Comments
 (0)