Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions lib/web_ui/lib/src/engine/html/scene_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
/// The surface currently being built.
PersistedContainerSurface get _currentSurface => _surfaceStack.last;

ui.EngineLayer _pushSurface(PersistedContainerSurface surface) {
T _pushSurface<T extends PersistedContainerSurface>(T surface) {
// Only attempt to update if the update is requested and the surface is in
// the live tree.
if (surface.oldLayer != null) {
Expand Down Expand Up @@ -65,7 +65,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
double dy, {
ui.OffsetEngineLayer? oldLayer,
}) {
return _pushSurface(PersistedOffset(oldLayer as PersistedOffset?, dx, dy)) as ui.OffsetEngineLayer;
return _pushSurface<PersistedOffset>(PersistedOffset(oldLayer as PersistedOffset?, dx, dy));
}

/// Pushes a transform operation onto the operation stack.
Expand Down Expand Up @@ -96,7 +96,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
} else {
matrix = toMatrix32(matrix4);
}
return _pushSurface(PersistedTransform(oldLayer as PersistedTransform?, matrix)) as ui.TransformEngineLayer;
return _pushSurface<PersistedTransform>(PersistedTransform(oldLayer as PersistedTransform?, matrix));
}

/// Pushes a rectangular clip operation onto the operation stack.
Expand All @@ -113,8 +113,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
}) {
assert(clipBehavior != null); // ignore: unnecessary_null_comparison
assert(clipBehavior != ui.Clip.none);
return _pushSurface(PersistedClipRect(oldLayer as PersistedClipRect?, rect, clipBehavior))
as ui.ClipRectEngineLayer;
return _pushSurface<PersistedClipRect>(PersistedClipRect(oldLayer as PersistedClipRect?, rect, clipBehavior));
}

/// Pushes a rounded-rectangular clip operation onto the operation stack.
Expand All @@ -128,7 +127,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.Clip? clipBehavior,
ui.ClipRRectEngineLayer? oldLayer,
}) {
return _pushSurface(PersistedClipRRect(oldLayer, rrect, clipBehavior)) as ui.ClipRRectEngineLayer;
return _pushSurface<PersistedClipRRect>(PersistedClipRRect(oldLayer, rrect, clipBehavior));
}

/// Pushes a path clip operation onto the operation stack.
Expand All @@ -144,7 +143,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
}) {
assert(clipBehavior != null); // ignore: unnecessary_null_comparison
assert(clipBehavior != ui.Clip.none);
return _pushSurface(PersistedClipPath(oldLayer as PersistedClipPath?, path, clipBehavior)) as ui.ClipPathEngineLayer;
return _pushSurface<PersistedClipPath>(PersistedClipPath(oldLayer as PersistedClipPath?, path, clipBehavior));
}

/// Pushes an opacity operation onto the operation stack.
Expand All @@ -161,7 +160,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.Offset offset = ui.Offset.zero,
ui.OpacityEngineLayer? oldLayer,
}) {
return _pushSurface(PersistedOpacity(oldLayer as PersistedOpacity?, alpha, offset)) as ui.OpacityEngineLayer;
return _pushSurface<PersistedOpacity>(PersistedOpacity(oldLayer as PersistedOpacity?, alpha, offset));
}

/// Pushes a color filter operation onto the operation stack.
Expand All @@ -180,7 +179,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.ColorFilterEngineLayer? oldLayer,
}) {
assert(filter != null); // ignore: unnecessary_null_comparison
return _pushSurface(PersistedColorFilter(oldLayer as PersistedColorFilter?, filter)) as ui.ColorFilterEngineLayer;
return _pushSurface<PersistedColorFilter>(PersistedColorFilter(oldLayer as PersistedColorFilter?, filter));
}

/// Pushes an image filter operation onto the operation stack.
Expand All @@ -199,7 +198,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.ImageFilterEngineLayer? oldLayer,
}) {
assert(filter != null); // ignore: unnecessary_null_comparison
return _pushSurface(PersistedImageFilter(oldLayer as PersistedImageFilter?, filter)) as ui.ImageFilterEngineLayer;
return _pushSurface<PersistedImageFilter>(PersistedImageFilter(oldLayer as PersistedImageFilter?, filter));
}

/// Pushes a backdrop filter operation onto the operation stack.
Expand All @@ -213,7 +212,7 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.ImageFilter filter, {
ui.BackdropFilterEngineLayer? oldLayer,
}) {
return _pushSurface(PersistedBackdropFilter(oldLayer as PersistedBackdropFilter?, filter as EngineImageFilter)) as ui.BackdropFilterEngineLayer;
return _pushSurface<PersistedBackdropFilter>(PersistedBackdropFilter(oldLayer as PersistedBackdropFilter?, filter as EngineImageFilter));
}

/// Pushes a shader mask operation onto the operation stack.
Expand Down Expand Up @@ -254,14 +253,14 @@ class SurfaceSceneBuilder implements ui.SceneBuilder {
ui.PhysicalShapeEngineLayer? oldLayer,
}) {
assert(color != null, 'color must not be null'); // ignore: unnecessary_null_comparison
return _pushSurface(PersistedPhysicalShape(
return _pushSurface<PersistedPhysicalShape>(PersistedPhysicalShape(
oldLayer as PersistedPhysicalShape?,
path as SurfacePath,
elevation,
color.value,
shadowColor?.value ?? 0xFF000000,
clipBehavior,
)) as ui.PhysicalShapeEngineLayer;
));
}

/// Add a retained engine layer subtree from previous frames.
Expand Down