| Index: cc/layers/surface_layer_impl.cc
|
| diff --git a/cc/layers/surface_layer_impl.cc b/cc/layers/surface_layer_impl.cc
|
| index 167cd71cc7f3f12f706361c0d4d3a6c2bafca8d9..ed5b443ab0ad81cc75c7ca5918c1d9a155af3c33 100644
|
| --- a/cc/layers/surface_layer_impl.cc
|
| +++ b/cc/layers/surface_layer_impl.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/trace_event/trace_event_argument.h"
|
| #include "cc/debug/debug_colors.h"
|
| +#include "cc/layers/append_quads_data.h"
|
| #include "cc/quads/solid_color_draw_quad.h"
|
| #include "cc/quads/surface_draw_quad.h"
|
| #include "cc/trees/layer_tree_impl.h"
|
| @@ -65,19 +66,22 @@ void SurfaceLayerImpl::AppendQuads(RenderPass* render_pass,
|
| AppendQuadsData* append_quads_data) {
|
| AppendRainbowDebugBorder(render_pass);
|
| auto* primary = CreateSurfaceDrawQuad(
|
| - render_pass, SurfaceDrawQuadType::PRIMARY, primary_surface_info_);
|
| + render_pass, SurfaceDrawQuadType::PRIMARY, primary_surface_info_,
|
| + &append_quads_data->embedded_surfaces);
|
| // Emitting a fallback SurfaceDrawQuad is unnecessary if the primary and
|
| // fallback surface Ids match.
|
| if (primary && fallback_surface_info_.id() != primary_surface_info_.id()) {
|
| primary->fallback_quad = CreateSurfaceDrawQuad(
|
| - render_pass, SurfaceDrawQuadType::FALLBACK, fallback_surface_info_);
|
| + render_pass, SurfaceDrawQuadType::FALLBACK, fallback_surface_info_,
|
| + &append_quads_data->embedded_surfaces);
|
| }
|
| }
|
|
|
| SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad(
|
| RenderPass* render_pass,
|
| SurfaceDrawQuadType surface_draw_quad_type,
|
| - const SurfaceInfo& surface_info) {
|
| + const SurfaceInfo& surface_info,
|
| + std::vector<SurfaceId>* embedded_surfaces) {
|
| if (!surface_info.is_valid())
|
| return nullptr;
|
|
|
| @@ -117,6 +121,8 @@ SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad(
|
| render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
|
| surface_draw_quad->SetNew(shared_quad_state, quad_rect, visible_quad_rect,
|
| surface_info.id(), surface_draw_quad_type, nullptr);
|
| + embedded_surfaces->push_back(surface_info.id());
|
| +
|
| return surface_draw_quad;
|
| }
|
|
|
|
|