From ee18bf8eae4107d120addb4f3fcc93ae2000a28c Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Wed, 23 Nov 2016 13:36:12 -0800 Subject: [PATCH] Cull offscreen child views (flutter/engine#3267) There's no reason to present offscreen child views to Mozart. --- engine/src/flutter/lib/ui/compositing/scene_builder.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/engine/src/flutter/lib/ui/compositing/scene_builder.cc b/engine/src/flutter/lib/ui/compositing/scene_builder.cc index 2fb8ef52133..817aa084440 100644 --- a/engine/src/flutter/lib/ui/compositing/scene_builder.cc +++ b/engine/src/flutter/lib/ui/compositing/scene_builder.cc @@ -207,6 +207,12 @@ void SceneBuilder::addChildScene(double dx, #if defined(OS_FUCHSIA) if (!m_currentLayer) return; + + SkRect sceneRect = SkRect::MakeXYWH(dx, dy, physicalWidth / devicePixelRatio, + physicalHeight / devicePixelRatio); + if (!SkRect::Intersects(sceneRect, m_cullRects.top())) + return; + std::unique_ptr layer(new flow::ChildSceneLayer()); layer->set_offset(SkPoint::Make(dx, dy)); layer->set_device_pixel_ratio(devicePixelRatio);