Unverified Commit 210a905f authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Remove unused offset from Layer.addToScene/addChildrenToScene (#91753)

parent 5d587f95
...@@ -527,7 +527,7 @@ abstract class Layer extends AbstractNode with DiagnosticableTreeMixin { ...@@ -527,7 +527,7 @@ abstract class Layer extends AbstractNode with DiagnosticableTreeMixin {
/// Return the engine layer for retained rendering. When there's no /// Return the engine layer for retained rendering. When there's no
/// corresponding engine layer, null is returned. /// corresponding engine layer, null is returned.
@protected @protected
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]); void addToScene(ui.SceneBuilder builder);
void _addToSceneWithRetainedRendering(ui.SceneBuilder builder) { void _addToSceneWithRetainedRendering(ui.SceneBuilder builder) {
// There can't be a loop by adding a retained layer subtree whose // There can't be a loop by adding a retained layer subtree whose
...@@ -709,9 +709,9 @@ class PictureLayer extends Layer { ...@@ -709,9 +709,9 @@ class PictureLayer extends Layer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(picture != null); assert(picture != null);
builder.addPicture(layerOffset, picture!, isComplexHint: isComplexHint, willChangeHint: willChangeHint); builder.addPicture(Offset.zero, picture!, isComplexHint: isComplexHint, willChangeHint: willChangeHint);
} }
@override @override
...@@ -788,13 +788,12 @@ class TextureLayer extends Layer { ...@@ -788,13 +788,12 @@ class TextureLayer extends Layer {
final ui.FilterQuality filterQuality; final ui.FilterQuality filterQuality;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
final Rect shiftedRect = layerOffset == Offset.zero ? rect : rect.shift(layerOffset);
builder.addTexture( builder.addTexture(
textureId, textureId,
offset: shiftedRect.topLeft, offset: rect.topLeft,
width: shiftedRect.width, width: rect.width,
height: shiftedRect.height, height: rect.height,
freeze: freeze, freeze: freeze,
filterQuality: filterQuality, filterQuality: filterQuality,
); );
...@@ -827,13 +826,12 @@ class PlatformViewLayer extends Layer { ...@@ -827,13 +826,12 @@ class PlatformViewLayer extends Layer {
final int viewId; final int viewId;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
final Rect shiftedRect = layerOffset == Offset.zero ? rect : rect.shift(layerOffset);
builder.addPlatformView( builder.addPlatformView(
viewId, viewId,
offset: shiftedRect.topLeft, offset: rect.topLeft,
width: shiftedRect.width, width: rect.width,
height: shiftedRect.height, height: rect.height,
); );
} }
} }
...@@ -898,10 +896,9 @@ class PerformanceOverlayLayer extends Layer { ...@@ -898,10 +896,9 @@ class PerformanceOverlayLayer extends Layer {
final bool checkerboardOffscreenLayers; final bool checkerboardOffscreenLayers;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(optionsMask != null); assert(optionsMask != null);
final Rect shiftedOverlayRect = layerOffset == Offset.zero ? overlayRect : overlayRect.shift(layerOffset); builder.addPerformanceOverlay(optionsMask, overlayRect);
builder.addPerformanceOverlay(optionsMask, shiftedOverlayRect);
builder.setRasterizerTracingThreshold(rasterizerThreshold); builder.setRasterizerTracingThreshold(rasterizerThreshold);
builder.setCheckerboardRasterCacheImages(checkerboardRasterCacheImages); builder.setCheckerboardRasterCacheImages(checkerboardRasterCacheImages);
builder.setCheckerboardOffscreenLayers(checkerboardOffscreenLayers); builder.setCheckerboardOffscreenLayers(checkerboardOffscreenLayers);
...@@ -1092,8 +1089,8 @@ class ContainerLayer extends Layer { ...@@ -1092,8 +1089,8 @@ class ContainerLayer extends Layer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
} }
/// Uploads all of this layer's children to the engine. /// Uploads all of this layer's children to the engine.
...@@ -1103,14 +1100,10 @@ class ContainerLayer extends Layer { ...@@ -1103,14 +1100,10 @@ class ContainerLayer extends Layer {
/// to apply effects to the scene using the [SceneBuilder] API, then insert /// to apply effects to the scene using the [SceneBuilder] API, then insert
/// their children using [addChildrenToScene], then reverse the aforementioned /// their children using [addChildrenToScene], then reverse the aforementioned
/// effects before returning from [addToScene]. /// effects before returning from [addToScene].
void addChildrenToScene(ui.SceneBuilder builder, [ Offset childOffset = Offset.zero ]) { void addChildrenToScene(ui.SceneBuilder builder) {
Layer? child = firstChild; Layer? child = firstChild;
while (child != null) { while (child != null) {
if (childOffset == Offset.zero) {
child._addToSceneWithRetainedRendering(builder); child._addToSceneWithRetainedRendering(builder);
} else {
child.addToScene(builder, childOffset);
}
child = child.nextSibling; child = child.nextSibling;
} }
} }
...@@ -1233,15 +1226,15 @@ class OffsetLayer extends ContainerLayer { ...@@ -1233,15 +1226,15 @@ class OffsetLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
// Skia has a fast path for concatenating scale/translation only matrices. // Skia has a fast path for concatenating scale/translation only matrices.
// Hence pushing a translation-only transform layer should be fast. For // Hence pushing a translation-only transform layer should be fast. For
// retained rendering, we don't want to push the offset down to each leaf // retained rendering, we don't want to push the offset down to each leaf
// node. Otherwise, changing an offset layer on the very high level could // node. Otherwise, changing an offset layer on the very high level could
// cascade the change to too many leaves. // cascade the change to too many leaves.
engineLayer = builder.pushOffset( engineLayer = builder.pushOffset(
layerOffset.dx + offset.dx, offset.dx,
layerOffset.dy + offset.dy, offset.dy,
oldLayer: _engineLayer as ui.OffsetEngineLayer?, oldLayer: _engineLayer as ui.OffsetEngineLayer?,
); );
addChildrenToScene(builder); addChildrenToScene(builder);
...@@ -1355,7 +1348,7 @@ class ClipRectLayer extends ContainerLayer { ...@@ -1355,7 +1348,7 @@ class ClipRectLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(clipRect != null); assert(clipRect != null);
assert(clipBehavior != null); assert(clipBehavior != null);
bool enabled = true; bool enabled = true;
...@@ -1364,16 +1357,15 @@ class ClipRectLayer extends ContainerLayer { ...@@ -1364,16 +1357,15 @@ class ClipRectLayer extends ContainerLayer {
return true; return true;
}()); }());
if (enabled) { if (enabled) {
final Rect shiftedClipRect = layerOffset == Offset.zero ? clipRect! : clipRect!.shift(layerOffset);
engineLayer = builder.pushClipRect( engineLayer = builder.pushClipRect(
shiftedClipRect, clipRect!,
clipBehavior: clipBehavior, clipBehavior: clipBehavior,
oldLayer: _engineLayer as ui.ClipRectEngineLayer?, oldLayer: _engineLayer as ui.ClipRectEngineLayer?,
); );
} else { } else {
engineLayer = null; engineLayer = null;
} }
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
if (enabled) if (enabled)
builder.pop(); builder.pop();
} }
...@@ -1439,7 +1431,7 @@ class ClipRRectLayer extends ContainerLayer { ...@@ -1439,7 +1431,7 @@ class ClipRRectLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(clipRRect != null); assert(clipRRect != null);
assert(clipBehavior != null); assert(clipBehavior != null);
bool enabled = true; bool enabled = true;
...@@ -1448,16 +1440,15 @@ class ClipRRectLayer extends ContainerLayer { ...@@ -1448,16 +1440,15 @@ class ClipRRectLayer extends ContainerLayer {
return true; return true;
}()); }());
if (enabled) { if (enabled) {
final RRect shiftedClipRRect = layerOffset == Offset.zero ? clipRRect! : clipRRect!.shift(layerOffset);
engineLayer = builder.pushClipRRect( engineLayer = builder.pushClipRRect(
shiftedClipRRect, clipRRect!,
clipBehavior: clipBehavior, clipBehavior: clipBehavior,
oldLayer: _engineLayer as ui.ClipRRectEngineLayer?, oldLayer: _engineLayer as ui.ClipRRectEngineLayer?,
); );
} else { } else {
engineLayer = null; engineLayer = null;
} }
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
if (enabled) if (enabled)
builder.pop(); builder.pop();
} }
...@@ -1523,7 +1514,7 @@ class ClipPathLayer extends ContainerLayer { ...@@ -1523,7 +1514,7 @@ class ClipPathLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(clipPath != null); assert(clipPath != null);
assert(clipBehavior != null); assert(clipBehavior != null);
bool enabled = true; bool enabled = true;
...@@ -1532,16 +1523,15 @@ class ClipPathLayer extends ContainerLayer { ...@@ -1532,16 +1523,15 @@ class ClipPathLayer extends ContainerLayer {
return true; return true;
}()); }());
if (enabled) { if (enabled) {
final Path shiftedPath = layerOffset == Offset.zero ? clipPath! : clipPath!.shift(layerOffset);
engineLayer = builder.pushClipPath( engineLayer = builder.pushClipPath(
shiftedPath, clipPath!,
clipBehavior: clipBehavior, clipBehavior: clipBehavior,
oldLayer: _engineLayer as ui.ClipPathEngineLayer?, oldLayer: _engineLayer as ui.ClipPathEngineLayer?,
); );
} else { } else {
engineLayer = null; engineLayer = null;
} }
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
if (enabled) if (enabled)
builder.pop(); builder.pop();
} }
...@@ -1578,13 +1568,13 @@ class ColorFilterLayer extends ContainerLayer { ...@@ -1578,13 +1568,13 @@ class ColorFilterLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(colorFilter != null); assert(colorFilter != null);
engineLayer = builder.pushColorFilter( engineLayer = builder.pushColorFilter(
colorFilter!, colorFilter!,
oldLayer: _engineLayer as ui.ColorFilterEngineLayer?, oldLayer: _engineLayer as ui.ColorFilterEngineLayer?,
); );
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
builder.pop(); builder.pop();
} }
...@@ -1620,13 +1610,13 @@ class ImageFilterLayer extends ContainerLayer { ...@@ -1620,13 +1610,13 @@ class ImageFilterLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(imageFilter != null); assert(imageFilter != null);
engineLayer = builder.pushImageFilter( engineLayer = builder.pushImageFilter(
imageFilter!, imageFilter!,
oldLayer: _engineLayer as ui.ImageFilterEngineLayer?, oldLayer: _engineLayer as ui.ImageFilterEngineLayer?,
); );
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
builder.pop(); builder.pop();
} }
...@@ -1677,12 +1667,11 @@ class TransformLayer extends OffsetLayer { ...@@ -1677,12 +1667,11 @@ class TransformLayer extends OffsetLayer {
bool _inverseDirty = true; bool _inverseDirty = true;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(transform != null); assert(transform != null);
_lastEffectiveTransform = transform; _lastEffectiveTransform = transform;
final Offset totalOffset = offset + layerOffset; if (offset != Offset.zero) {
if (totalOffset != Offset.zero) { _lastEffectiveTransform = Matrix4.translationValues(offset.dx, offset.dy, 0.0)
_lastEffectiveTransform = Matrix4.translationValues(totalOffset.dx, totalOffset.dy, 0.0)
..multiply(_lastEffectiveTransform!); ..multiply(_lastEffectiveTransform!);
} }
engineLayer = builder.pushTransform( engineLayer = builder.pushTransform(
...@@ -1773,7 +1762,7 @@ class OpacityLayer extends OffsetLayer { ...@@ -1773,7 +1762,7 @@ class OpacityLayer extends OffsetLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(alpha != null); assert(alpha != null);
bool enabled = firstChild != null; // don't add this layer if there's no child bool enabled = firstChild != null; // don't add this layer if there's no child
if (!enabled) { if (!enabled) {
...@@ -1792,14 +1781,14 @@ class OpacityLayer extends OffsetLayer { ...@@ -1792,14 +1781,14 @@ class OpacityLayer extends OffsetLayer {
assert(_engineLayer is ui.OpacityEngineLayer?); assert(_engineLayer is ui.OpacityEngineLayer?);
engineLayer = builder.pushOpacity( engineLayer = builder.pushOpacity(
realizedAlpha, realizedAlpha,
offset: offset + layerOffset, offset: offset,
oldLayer: _engineLayer as ui.OpacityEngineLayer?, oldLayer: _engineLayer as ui.OpacityEngineLayer?,
); );
} else { } else {
assert(_engineLayer is ui.OffsetEngineLayer?); assert(_engineLayer is ui.OffsetEngineLayer?);
engineLayer = builder.pushOffset( engineLayer = builder.pushOffset(
layerOffset.dx + offset.dx, offset.dx,
layerOffset.dy + offset.dy, offset.dy,
oldLayer: _engineLayer as ui.OffsetEngineLayer?, oldLayer: _engineLayer as ui.OffsetEngineLayer?,
); );
} }
...@@ -1884,19 +1873,17 @@ class ShaderMaskLayer extends ContainerLayer { ...@@ -1884,19 +1873,17 @@ class ShaderMaskLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(shader != null); assert(shader != null);
assert(maskRect != null); assert(maskRect != null);
assert(blendMode != null); assert(blendMode != null);
assert(layerOffset != null);
final Rect shiftedMaskRect = layerOffset == Offset.zero ? maskRect! : maskRect!.shift(layerOffset);
engineLayer = builder.pushShaderMask( engineLayer = builder.pushShaderMask(
shader!, shader!,
shiftedMaskRect, maskRect! ,
blendMode!, blendMode!,
oldLayer: _engineLayer as ui.ShaderMaskEngineLayer?, oldLayer: _engineLayer as ui.ShaderMaskEngineLayer?,
); );
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
builder.pop(); builder.pop();
} }
...@@ -1954,14 +1941,14 @@ class BackdropFilterLayer extends ContainerLayer { ...@@ -1954,14 +1941,14 @@ class BackdropFilterLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(filter != null); assert(filter != null);
engineLayer = builder.pushBackdropFilter( engineLayer = builder.pushBackdropFilter(
filter!, filter!,
blendMode: blendMode, blendMode: blendMode,
oldLayer: _engineLayer as ui.BackdropFilterEngineLayer?, oldLayer: _engineLayer as ui.BackdropFilterEngineLayer?,
); );
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
builder.pop(); builder.pop();
} }
} }
...@@ -2067,7 +2054,7 @@ class PhysicalModelLayer extends ContainerLayer { ...@@ -2067,7 +2054,7 @@ class PhysicalModelLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(clipPath != null); assert(clipPath != null);
assert(clipBehavior != null); assert(clipBehavior != null);
assert(elevation != null); assert(elevation != null);
...@@ -2081,7 +2068,7 @@ class PhysicalModelLayer extends ContainerLayer { ...@@ -2081,7 +2068,7 @@ class PhysicalModelLayer extends ContainerLayer {
}()); }());
if (enabled) { if (enabled) {
engineLayer = builder.pushPhysicalShape( engineLayer = builder.pushPhysicalShape(
path: layerOffset == Offset.zero ? clipPath! : clipPath!.shift(layerOffset), path: clipPath!,
elevation: elevation!, elevation: elevation!,
color: color!, color: color!,
shadowColor: shadowColor, shadowColor: shadowColor,
...@@ -2091,7 +2078,7 @@ class PhysicalModelLayer extends ContainerLayer { ...@@ -2091,7 +2078,7 @@ class PhysicalModelLayer extends ContainerLayer {
} else { } else {
engineLayer = null; engineLayer = null;
} }
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
if (enabled) if (enabled)
builder.pop(); builder.pop();
} }
...@@ -2202,9 +2189,9 @@ class LeaderLayer extends ContainerLayer { ...@@ -2202,9 +2189,9 @@ class LeaderLayer extends ContainerLayer {
} }
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(offset != null); assert(offset != null);
_lastOffset = offset + layerOffset; _lastOffset = offset;
if (_lastOffset != Offset.zero) if (_lastOffset != Offset.zero)
engineLayer = builder.pushTransform( engineLayer = builder.pushTransform(
Matrix4.translationValues(_lastOffset!.dx, _lastOffset!.dy, 0.0).storage, Matrix4.translationValues(_lastOffset!.dx, _lastOffset!.dy, 0.0).storage,
...@@ -2472,7 +2459,7 @@ class FollowerLayer extends ContainerLayer { ...@@ -2472,7 +2459,7 @@ class FollowerLayer extends ContainerLayer {
bool get alwaysNeedsAddToScene => true; bool get alwaysNeedsAddToScene => true;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
assert(link != null); assert(link != null);
assert(showWhenUnlinked != null); assert(showWhenUnlinked != null);
if (link.leader == null && !showWhenUnlinked!) { if (link.leader == null && !showWhenUnlinked!) {
...@@ -2490,7 +2477,7 @@ class FollowerLayer extends ContainerLayer { ...@@ -2490,7 +2477,7 @@ class FollowerLayer extends ContainerLayer {
); );
addChildrenToScene(builder); addChildrenToScene(builder);
builder.pop(); builder.pop();
_lastOffset = unlinkedOffset! + layerOffset; _lastOffset = unlinkedOffset;
} else { } else {
_lastOffset = null; _lastOffset = null;
final Matrix4 matrix = Matrix4.translationValues(unlinkedOffset!.dx, unlinkedOffset!.dy, .0); final Matrix4 matrix = Matrix4.translationValues(unlinkedOffset!.dx, unlinkedOffset!.dy, .0);
......
...@@ -54,8 +54,8 @@ class _ProxyLayer extends Layer { ...@@ -54,8 +54,8 @@ class _ProxyLayer extends Layer {
final Layer _layer; final Layer _layer;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
_layer.addToScene(builder, layerOffset); _layer.addToScene(builder);
} }
@override @override
...@@ -319,8 +319,8 @@ Rect _calculateSubtreeBounds(RenderObject object) { ...@@ -319,8 +319,8 @@ Rect _calculateSubtreeBounds(RenderObject object) {
/// screenshots render to the scene in the local coordinate system of the layer. /// screenshots render to the scene in the local coordinate system of the layer.
class _ScreenshotContainerLayer extends OffsetLayer { class _ScreenshotContainerLayer extends OffsetLayer {
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
addChildrenToScene(builder, layerOffset); addChildrenToScene(builder);
} }
} }
...@@ -2665,7 +2665,7 @@ class _InspectorOverlayLayer extends Layer { ...@@ -2665,7 +2665,7 @@ class _InspectorOverlayLayer extends Layer {
double? _textPainterMaxWidth; double? _textPainterMaxWidth;
@override @override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) { void addToScene(ui.SceneBuilder builder) {
if (!selection.active) if (!selection.active)
return; return;
...@@ -2694,7 +2694,7 @@ class _InspectorOverlayLayer extends Layer { ...@@ -2694,7 +2694,7 @@ class _InspectorOverlayLayer extends Layer {
_lastState = state; _lastState = state;
_picture = _buildPicture(state); _picture = _buildPicture(state);
} }
builder.addPicture(layerOffset, _picture); builder.addPicture(Offset.zero, _picture);
} }
ui.Picture _buildPicture(_InspectorOverlayRenderState state) { ui.Picture _buildPicture(_InspectorOverlayRenderState state) {
......
...@@ -845,7 +845,7 @@ class _TestAnnotatedLayer extends Layer { ...@@ -845,7 +845,7 @@ class _TestAnnotatedLayer extends Layer {
final Size? size; final Size? size;
@override @override
EngineLayer? addToScene(SceneBuilder builder, [Offset layerOffset = Offset.zero]) { EngineLayer? addToScene(SceneBuilder builder) {
return null; return null;
} }
......
...@@ -608,7 +608,7 @@ class FakePicture extends Fake implements Picture { ...@@ -608,7 +608,7 @@ class FakePicture extends Fake implements Picture {
class ConcreteLayer extends Layer { class ConcreteLayer extends Layer {
@override @override
void addToScene(SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) {} void addToScene(SceneBuilder builder) {}
} }
class _TestAlwaysNeedsAddToSceneLayer extends ContainerLayer { class _TestAlwaysNeedsAddToSceneLayer extends ContainerLayer {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment