diff --git a/engine/src/flutter/flow/layers/child_scene_layer.cc b/engine/src/flutter/flow/layers/child_scene_layer.cc index aedff4172b4..62510b69dc0 100644 --- a/engine/src/flutter/flow/layers/child_scene_layer.cc +++ b/engine/src/flutter/flow/layers/child_scene_layer.cc @@ -19,6 +19,13 @@ void ChildSceneLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) { transform_.preTranslate(offset_.x(), offset_.y()); float inverse_device_pixel_ratio = 1.f / device_pixel_ratio_; transform_.preScale(inverse_device_pixel_ratio, inverse_device_pixel_ratio); + + SkRect bounds = SkRect::MakeXYWH( + offset_.x(), offset_.y(), + physical_size_.width() * inverse_device_pixel_ratio, + physical_size_.height() * inverse_device_pixel_ratio); + set_paint_bounds(bounds); + context->child_paint_bounds = bounds; } void ChildSceneLayer::Paint(PaintContext& context) { diff --git a/engine/src/flutter/flow/layers/opacity_layer.cc b/engine/src/flutter/flow/layers/opacity_layer.cc index 51a070724b7..8721bd99081 100644 --- a/engine/src/flutter/flow/layers/opacity_layer.cc +++ b/engine/src/flutter/flow/layers/opacity_layer.cc @@ -23,6 +23,7 @@ void OpacityLayer::UpdateScene(SceneUpdateContext& context, node->op = mozart::NodeOp::New(); node->op->set_layer(mozart::LayerNodeOp::New()); node->op->get_layer()->layer_rect = mozart::RectF::From(paint_bounds()); + node->op->get_layer()->blend = mozart::Blend::New(); node->op->get_layer()->blend->alpha = alpha_; UpdateSceneChildrenInsideNode(context, container, std::move(node)); }