@@ -281,12 +281,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
281
281
}) {
282
282
assert (_matrix4IsValid (matrix4));
283
283
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushTransform' ));
284
- final TransformEngineLayer layer = TransformEngineLayer ._(_pushTransform (matrix4));
284
+ final EngineLayer engineLayer = EngineLayer ._();
285
+ _pushTransform (engineLayer, matrix4);
286
+ final TransformEngineLayer layer = TransformEngineLayer ._(engineLayer);
285
287
assert (_debugPushLayer (layer));
286
288
return layer;
287
289
}
288
290
289
- EngineLayer _pushTransform (Float64List matrix4) native 'SceneBuilder_pushTransform' ;
291
+ void _pushTransform (EngineLayer layer, Float64List matrix4) native 'SceneBuilder_pushTransform' ;
290
292
291
293
/// Pushes an offset operation onto the operation stack.
292
294
///
@@ -303,12 +305,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
303
305
OffsetEngineLayer oldLayer,
304
306
}) {
305
307
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushOffset' ));
306
- final OffsetEngineLayer layer = OffsetEngineLayer ._(_pushOffset (dx, dy));
308
+ final EngineLayer engineLayer = EngineLayer ._();
309
+ _pushOffset (engineLayer, dx, dy);
310
+ final OffsetEngineLayer layer = OffsetEngineLayer ._(engineLayer);
307
311
assert (_debugPushLayer (layer));
308
312
return layer;
309
313
}
310
314
311
- EngineLayer _pushOffset (double dx, double dy) native 'SceneBuilder_pushOffset' ;
315
+ void _pushOffset (EngineLayer layer, double dx, double dy) native 'SceneBuilder_pushOffset' ;
312
316
313
317
/// Pushes a rectangular clip operation onto the operation stack.
314
318
///
@@ -328,13 +332,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
328
332
assert (clipBehavior != null );
329
333
assert (clipBehavior != Clip .none);
330
334
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushClipRect' ));
331
- final ClipRectEngineLayer layer = ClipRectEngineLayer ._(
332
- _pushClipRect (rect.left, rect.right, rect.top, rect.bottom, clipBehavior.index));
335
+ final EngineLayer engineLayer = EngineLayer ._();
336
+ _pushClipRect (engineLayer, rect.left, rect.right, rect.top, rect.bottom, clipBehavior.index);
337
+ final ClipRectEngineLayer layer = ClipRectEngineLayer ._(engineLayer);
333
338
assert (_debugPushLayer (layer));
334
339
return layer;
335
340
}
336
341
337
- EngineLayer _pushClipRect (double left, double right, double top, double bottom, int clipBehavior)
342
+ void _pushClipRect (EngineLayer outEngineLayer, double left, double right, double top, double bottom, int clipBehavior)
338
343
native 'SceneBuilder_pushClipRect' ;
339
344
340
345
/// Pushes a rounded-rectangular clip operation onto the operation stack.
@@ -355,13 +360,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
355
360
assert (clipBehavior != null );
356
361
assert (clipBehavior != Clip .none);
357
362
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushClipRRect' ));
358
- final ClipRRectEngineLayer layer =
359
- ClipRRectEngineLayer ._(_pushClipRRect (rrect._value32, clipBehavior.index));
363
+ final EngineLayer engineLayer = EngineLayer ._();
364
+ _pushClipRRect (engineLayer, rrect._value32, clipBehavior.index);
365
+ final ClipRRectEngineLayer layer = ClipRRectEngineLayer ._(engineLayer);
360
366
assert (_debugPushLayer (layer));
361
367
return layer;
362
368
}
363
369
364
- EngineLayer _pushClipRRect (Float32List rrect, int clipBehavior)
370
+ void _pushClipRRect (EngineLayer layer, Float32List rrect, int clipBehavior)
365
371
native 'SceneBuilder_pushClipRRect' ;
366
372
367
373
/// Pushes a path clip operation onto the operation stack.
@@ -382,13 +388,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
382
388
assert (clipBehavior != null );
383
389
assert (clipBehavior != Clip .none);
384
390
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushClipPath' ));
385
- final ClipPathEngineLayer layer =
386
- ClipPathEngineLayer ._(_pushClipPath (path, clipBehavior.index));
391
+ final EngineLayer engineLayer = EngineLayer ._();
392
+ _pushClipPath (engineLayer, path, clipBehavior.index);
393
+ final ClipPathEngineLayer layer = ClipPathEngineLayer ._(engineLayer);
387
394
assert (_debugPushLayer (layer));
388
395
return layer;
389
396
}
390
397
391
- EngineLayer _pushClipPath (Path path, int clipBehavior) native 'SceneBuilder_pushClipPath' ;
398
+ void _pushClipPath (EngineLayer layer, Path path, int clipBehavior) native 'SceneBuilder_pushClipPath' ;
392
399
393
400
/// Pushes an opacity operation onto the operation stack.
394
401
///
@@ -408,13 +415,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
408
415
OpacityEngineLayer oldLayer,
409
416
}) {
410
417
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushOpacity' ));
411
- final OpacityEngineLayer layer =
412
- OpacityEngineLayer ._(_pushOpacity (alpha, offset.dx, offset.dy));
418
+ final EngineLayer engineLayer = EngineLayer ._();
419
+ _pushOpacity (engineLayer, alpha, offset.dx, offset.dy);
420
+ final OpacityEngineLayer layer = OpacityEngineLayer ._(engineLayer);
413
421
assert (_debugPushLayer (layer));
414
422
return layer;
415
423
}
416
424
417
- EngineLayer _pushOpacity (int alpha, double dx, double dy) native 'SceneBuilder_pushOpacity' ;
425
+ void _pushOpacity (EngineLayer layer, int alpha, double dx, double dy) native 'SceneBuilder_pushOpacity' ;
418
426
419
427
/// Pushes a color filter operation onto the operation stack.
420
428
///
@@ -434,12 +442,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
434
442
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushColorFilter' ));
435
443
final _ColorFilter nativeFilter = filter._toNativeColorFilter ();
436
444
assert (nativeFilter != null );
437
- final ColorFilterEngineLayer layer = ColorFilterEngineLayer ._(_pushColorFilter (nativeFilter));
445
+ final EngineLayer engineLayer = EngineLayer ._();
446
+ _pushColorFilter (engineLayer, nativeFilter);
447
+ final ColorFilterEngineLayer layer = ColorFilterEngineLayer ._(engineLayer);
438
448
assert (_debugPushLayer (layer));
439
449
return layer;
440
450
}
441
451
442
- EngineLayer _pushColorFilter (_ColorFilter filter) native 'SceneBuilder_pushColorFilter' ;
452
+ void _pushColorFilter (EngineLayer layer, _ColorFilter filter) native 'SceneBuilder_pushColorFilter' ;
443
453
444
454
/// Pushes an image filter operation onto the operation stack.
445
455
///
@@ -459,12 +469,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
459
469
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushImageFilter' ));
460
470
final _ImageFilter nativeFilter = filter._toNativeImageFilter ();
461
471
assert (nativeFilter != null );
462
- final ImageFilterEngineLayer layer = ImageFilterEngineLayer ._(_pushImageFilter (nativeFilter));
472
+ final EngineLayer engineLayer = EngineLayer ._();
473
+ _pushImageFilter (engineLayer, nativeFilter);
474
+ final ImageFilterEngineLayer layer = ImageFilterEngineLayer ._(engineLayer);
463
475
assert (_debugPushLayer (layer));
464
476
return layer;
465
477
}
466
478
467
- EngineLayer _pushImageFilter (_ImageFilter filter) native 'SceneBuilder_pushImageFilter' ;
479
+ void _pushImageFilter (EngineLayer outEngineLayer, _ImageFilter filter) native 'SceneBuilder_pushImageFilter' ;
468
480
469
481
/// Pushes a backdrop filter operation onto the operation stack.
470
482
///
@@ -481,13 +493,14 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
481
493
BackdropFilterEngineLayer oldLayer,
482
494
}) {
483
495
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushBackdropFilter' ));
484
- final BackdropFilterEngineLayer layer =
485
- BackdropFilterEngineLayer ._(_pushBackdropFilter (filter._toNativeImageFilter ()));
496
+ final EngineLayer engineLayer = EngineLayer ._();
497
+ _pushBackdropFilter (engineLayer, filter._toNativeImageFilter ());
498
+ final BackdropFilterEngineLayer layer = BackdropFilterEngineLayer ._(engineLayer);
486
499
assert (_debugPushLayer (layer));
487
500
return layer;
488
501
}
489
502
490
- EngineLayer _pushBackdropFilter (_ImageFilter filter) native 'SceneBuilder_pushBackdropFilter' ;
503
+ void _pushBackdropFilter (EngineLayer outEngineLayer, _ImageFilter filter) native 'SceneBuilder_pushBackdropFilter' ;
491
504
492
505
/// Pushes a shader mask operation onto the operation stack.
493
506
///
@@ -506,13 +519,23 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
506
519
ShaderMaskEngineLayer oldLayer,
507
520
}) {
508
521
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushShaderMask' ));
509
- final ShaderMaskEngineLayer layer = ShaderMaskEngineLayer ._(_pushShaderMask (
510
- shader, maskRect.left, maskRect.right, maskRect.top, maskRect.bottom, blendMode.index));
522
+ final EngineLayer engineLayer = EngineLayer ._();
523
+ _pushShaderMask (
524
+ engineLayer,
525
+ shader,
526
+ maskRect.left,
527
+ maskRect.right,
528
+ maskRect.top,
529
+ maskRect.bottom,
530
+ blendMode.index,
531
+ );
532
+ final ShaderMaskEngineLayer layer = ShaderMaskEngineLayer ._(engineLayer);
511
533
assert (_debugPushLayer (layer));
512
534
return layer;
513
535
}
514
536
515
537
EngineLayer _pushShaderMask (
538
+ EngineLayer engineLayer,
516
539
Shader shader,
517
540
double maskRectLeft,
518
541
double maskRectRight,
@@ -546,13 +569,21 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
546
569
PhysicalShapeEngineLayer oldLayer,
547
570
}) {
548
571
assert (_debugCheckCanBeUsedAsOldLayer (oldLayer, 'pushPhysicalShape' ));
549
- final PhysicalShapeEngineLayer layer = PhysicalShapeEngineLayer ._(_pushPhysicalShape (
550
- path, elevation, color.value, shadowColor? .value ?? 0xFF000000 , clipBehavior.index));
572
+ final EngineLayer engineLayer = EngineLayer ._();
573
+ _pushPhysicalShape (
574
+ engineLayer,
575
+ path,
576
+ elevation,
577
+ color.value,
578
+ shadowColor? .value ?? 0xFF000000 ,
579
+ clipBehavior.index,
580
+ );
581
+ final PhysicalShapeEngineLayer layer = PhysicalShapeEngineLayer ._(engineLayer);
551
582
assert (_debugPushLayer (layer));
552
583
return layer;
553
584
}
554
585
555
- EngineLayer _pushPhysicalShape (Path path, double elevation, int color, int shadowColor,
586
+ EngineLayer _pushPhysicalShape (EngineLayer outEngineLayer, Path path, double elevation, int color, int shadowColor,
556
587
int clipBehavior) native 'SceneBuilder_pushPhysicalShape' ;
557
588
558
589
/// Ends the effect of the most recently pushed operation.
@@ -770,7 +801,13 @@ class SceneBuilder extends NativeFieldWrapperClass2 {
770
801
///
771
802
/// After calling this function, the scene builder object is invalid and
772
803
/// cannot be used further.
773
- Scene build () native 'SceneBuilder_build' ;
804
+ Scene build () {
805
+ final Scene scene = Scene ._();
806
+ _build (scene);
807
+ return scene;
808
+ }
809
+
810
+ void _build (Scene outScene) native 'SceneBuilder_build' ;
774
811
}
775
812
776
813
/// (Fuchsia-only) Hosts content provided by another application.
0 commit comments