@@ -8,9 +8,7 @@ part of engine;
88class LayerScene implements ui.Scene {
99 final LayerTree layerTree;
1010
11- LayerScene (Layer ? rootLayer) : layerTree = LayerTree () {
12- layerTree.rootLayer = rootLayer;
13- }
11+ LayerScene (RootLayer rootLayer) : layerTree = LayerTree (rootLayer);
1412
1513 @override
1614 void dispose () {}
@@ -23,8 +21,12 @@ class LayerScene implements ui.Scene {
2321}
2422
2523class LayerSceneBuilder implements ui.SceneBuilder {
26- Layer ? rootLayer;
27- ContainerLayer ? currentLayer;
24+ LayerSceneBuilder () : rootLayer = RootLayer () {
25+ currentLayer = rootLayer;
26+ }
27+
28+ final RootLayer rootLayer;
29+ late ContainerLayer currentLayer;
2830
2931 @override
3032 void addChildScene ({
@@ -50,16 +52,13 @@ class LayerSceneBuilder implements ui.SceneBuilder {
5052 bool isComplexHint = false ,
5153 bool willChangeHint = false ,
5254 }) {
53- currentLayer! .add (PictureLayer (
55+ currentLayer.add (PictureLayer (
5456 picture as CkPicture , offset, isComplexHint, willChangeHint));
5557 }
5658
5759 @override
5860 void addRetained (ui.EngineLayer retainedLayer) {
59- if (currentLayer == null ) {
60- return ;
61- }
62- currentLayer! .add (retainedLayer as Layer );
61+ currentLayer.add (retainedLayer as Layer );
6362 }
6463
6564 @override
@@ -82,7 +81,7 @@ class LayerSceneBuilder implements ui.SceneBuilder {
8281 double height = 0.0 ,
8382 Object ? webOnlyPaintedBy,
8483 }) {
85- currentLayer! .add (PlatformViewLayer (viewId, offset, width, height));
84+ currentLayer.add (PlatformViewLayer (viewId, offset, width, height));
8685 }
8786
8887 @override
@@ -92,10 +91,11 @@ class LayerSceneBuilder implements ui.SceneBuilder {
9291
9392 @override
9493 void pop () {
95- if (currentLayer == null ) {
94+ if (currentLayer == rootLayer) {
95+ // Don't pop the root layer. It must always be there.
9696 return ;
9797 }
98- currentLayer = currentLayer! .parent;
98+ currentLayer = currentLayer.parent! ;
9999 }
100100
101101 @override
@@ -221,16 +221,7 @@ class LayerSceneBuilder implements ui.SceneBuilder {
221221 }
222222
223223 T pushLayer <T extends ContainerLayer >(T layer) {
224- if (rootLayer == null ) {
225- rootLayer = currentLayer = layer;
226- return layer;
227- }
228-
229- if (currentLayer == null ) {
230- return layer;
231- }
232-
233- currentLayer! .add (layer);
224+ currentLayer.add (layer);
234225 currentLayer = layer;
235226 return layer;
236227 }
0 commit comments