diff --git a/shell/platform/embedder/embedder.h b/shell/platform/embedder/embedder.h index f98f848e967b3..8fad4ceb7005f 100644 --- a/shell/platform/embedder/embedder.h +++ b/shell/platform/embedder/embedder.h @@ -871,6 +871,8 @@ typedef struct { size_t struct_size; /// The size of the render target the engine expects to render into. FlutterSize size; + /// This is true if a backing store is requested for the root view. + bool is_root_view; } FlutterBackingStoreConfig; typedef enum { diff --git a/shell/platform/embedder/embedder_external_view_embedder.cc b/shell/platform/embedder/embedder_external_view_embedder.cc index fc6c2905331c9..06de0284cc941 100644 --- a/shell/platform/embedder/embedder_external_view_embedder.cc +++ b/shell/platform/embedder/embedder_external_view_embedder.cc @@ -119,13 +119,15 @@ SkCanvas* EmbedderExternalViewEmbedder::CompositeEmbeddedView(int view_id) { } static FlutterBackingStoreConfig MakeBackingStoreConfig( - const SkISize& backing_store_size) { + const SkISize& backing_store_size, + bool is_root_view) { FlutterBackingStoreConfig config = {}; config.struct_size = sizeof(config); config.size.width = backing_store_size.width(); config.size.height = backing_store_size.height(); + config.is_root_view = is_root_view; return config; } @@ -172,8 +174,8 @@ void EmbedderExternalViewEmbedder::SubmitFrame( // directly. const auto render_surface_size = external_view->GetRenderSurfaceSize(); - const auto backing_store_config = - MakeBackingStoreConfig(render_surface_size); + const auto backing_store_config = MakeBackingStoreConfig( + render_surface_size, external_view->IsRootView()); // This is where the embedder will create render targets for us. Control // flow to the embedder makes the engine susceptible to having the embedder diff --git a/shell/platform/embedder/tests/embedder_config_builder.cc b/shell/platform/embedder/tests/embedder_config_builder.cc index 93d4c6af916f2..bc96fb776d0f7 100644 --- a/shell/platform/embedder/tests/embedder_config_builder.cc +++ b/shell/platform/embedder/tests/embedder_config_builder.cc @@ -276,7 +276,6 @@ void EmbedderConfigBuilder::SetCompositor() { return reinterpret_cast(user_data)->Present( layers, // layers_count // - ); }; project_args_.compositor = &compositor_;