| Index: cc/surfaces/surface_aggregator_unittest.cc
|
| diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc
|
| index 6e633263647547ce40d817f226bf2fc668686abc..2ce40f14332da261bbd5adcaf6c1883e6d758c55 100644
|
| --- a/cc/surfaces/surface_aggregator_unittest.cc
|
| +++ b/cc/surfaces/surface_aggregator_unittest.cc
|
| @@ -81,8 +81,8 @@
|
| SurfaceId one_id(0, 7, 0);
|
| factory_.Create(one_id);
|
|
|
| - CompositorFrame frame = aggregator_.Aggregate(one_id);
|
| - EXPECT_FALSE(frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> frame = aggregator_.Aggregate(one_id);
|
| + EXPECT_FALSE(frame);
|
|
|
| factory_.Destroy(one_id);
|
| }
|
| @@ -112,12 +112,14 @@
|
| size_t expected_pass_count,
|
| SurfaceId* surface_ids,
|
| size_t expected_surface_count) {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| TestPassesMatchExpectations(
|
| expected_passes, expected_pass_count, &frame_data->render_pass_list);
|
| @@ -141,8 +143,8 @@
|
| std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
|
| pass_list->swap(frame_data->render_pass_list);
|
|
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
|
|
| factory_.SubmitCompositorFrame(surface_id, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -162,8 +164,8 @@
|
| new DelegatedFrameData);
|
| delegated_frame_data->render_pass_list.push_back(std::move(pass));
|
|
|
| - CompositorFrame child_frame;
|
| - child_frame.delegated_frame_data = std::move(delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> child_frame(new CompositorFrame);
|
| + child_frame->delegated_frame_data = std::move(delegated_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(surface_id, std::move(child_frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -211,11 +213,13 @@
|
|
|
| SubmitCompositorFrame(passes, arraysize(passes), root_surface_id_);
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| RenderPassList& render_pass_list(frame_data->render_pass_list);
|
| ASSERT_EQ(2u, render_pass_list.size());
|
| @@ -305,11 +309,13 @@
|
|
|
| SubmitCompositorFrame(root_passes, arraysize(root_passes), root_surface_id_);
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| test::Quad expected_quads[] = {
|
| test::Quad::SolidColorQuad(SK_ColorWHITE),
|
| @@ -375,18 +381,20 @@
|
| std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
|
| pass_list.swap(frame_data->render_pass_list);
|
|
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| }
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| test::Quad expected_quads[] = {test::Quad::SolidColorQuad(SK_ColorWHITE),
|
| test::Quad::SolidColorQuad(SK_ColorGREEN),
|
| @@ -415,10 +423,10 @@
|
| }
|
|
|
| // Ensure copy requests have been removed from root surface.
|
| - const CompositorFrame& original_frame =
|
| + const CompositorFrame* original_frame =
|
| manager_.GetSurfaceForId(root_surface_id_)->GetEligibleFrame();
|
| RenderPassList& original_pass_list =
|
| - original_frame.delegated_frame_data->render_pass_list;
|
| + original_frame->delegated_frame_data->render_pass_list;
|
| ASSERT_EQ(2u, original_pass_list.size());
|
| DCHECK(original_pass_list[0]->copy_requests.empty());
|
| DCHECK(original_pass_list[1]->copy_requests.empty());
|
| @@ -457,9 +465,9 @@
|
| AddPasses(&frame_data->render_pass_list, gfx::Rect(SurfaceSize()),
|
| parent_passes, arraysize(parent_passes));
|
|
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| - frame.metadata.referenced_surfaces.push_back(embedded_surface_id);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
| + frame->metadata.referenced_surfaces.push_back(embedded_surface_id);
|
|
|
| factory_.SubmitCompositorFrame(parent_surface_id, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -474,22 +482,24 @@
|
| AddPasses(&frame_data->render_pass_list, gfx::Rect(SurfaceSize()),
|
| root_passes, arraysize(root_passes));
|
|
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| - frame.metadata.referenced_surfaces.push_back(parent_surface_id);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
| + frame->metadata.referenced_surfaces.push_back(parent_surface_id);
|
| // Reference to Surface ID of a Surface that doesn't exist should be
|
| // included in previous_contained_surfaces, but otherwise ignored.
|
| - frame.metadata.referenced_surfaces.push_back(nonexistent_surface_id);
|
| + frame->metadata.referenced_surfaces.push_back(nonexistent_surface_id);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| }
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| // First pass should come from surface that had a copy request but was not
|
| // referenced directly. The second pass comes from the root surface.
|
| @@ -551,11 +561,13 @@
|
|
|
| SubmitCompositorFrame(root_passes, arraysize(root_passes), root_surface_id_);
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -785,11 +797,13 @@
|
| SubmitCompositorFrame(parent_passes, arraysize(parent_passes),
|
| root_surface_id_);
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -946,11 +960,13 @@
|
|
|
| QueuePassAsFrame(std::move(root_pass), root_surface_id_);
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1025,8 +1041,8 @@
|
| new DelegatedFrameData);
|
| child_pass_list.swap(child_frame_data->render_pass_list);
|
|
|
| - CompositorFrame child_frame;
|
| - child_frame.delegated_frame_data = std::move(child_frame_data);
|
| + std::unique_ptr<CompositorFrame> child_frame(new CompositorFrame);
|
| + child_frame->delegated_frame_data = std::move(child_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(child_surface_id, std::move(child_frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -1057,8 +1073,8 @@
|
| new DelegatedFrameData);
|
| middle_pass_list.swap(middle_frame_data->render_pass_list);
|
|
|
| - CompositorFrame middle_frame;
|
| - middle_frame.delegated_frame_data = std::move(middle_frame_data);
|
| + std::unique_ptr<CompositorFrame> middle_frame(new CompositorFrame);
|
| + middle_frame->delegated_frame_data = std::move(middle_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(middle_surface_id, std::move(middle_frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -1093,17 +1109,19 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(root_frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1198,8 +1216,8 @@
|
| std::unique_ptr<DelegatedFrameData> child_frame_data(new DelegatedFrameData);
|
| child_pass_list.swap(child_frame_data->render_pass_list);
|
|
|
| - CompositorFrame child_frame;
|
| - child_frame.delegated_frame_data = std::move(child_frame_data);
|
| + std::unique_ptr<CompositorFrame> child_frame(new CompositorFrame);
|
| + child_frame->delegated_frame_data = std::move(child_frame_data);
|
|
|
| SurfaceId child_surface_id = allocator_.GenerateId();
|
| factory_.Create(child_surface_id);
|
| @@ -1224,8 +1242,8 @@
|
| new DelegatedFrameData);
|
| parent_surface_pass_list.swap(parent_surface_frame_data->render_pass_list);
|
|
|
| - CompositorFrame parent_surface_frame;
|
| - parent_surface_frame.delegated_frame_data =
|
| + std::unique_ptr<CompositorFrame> parent_surface_frame(new CompositorFrame);
|
| + parent_surface_frame->delegated_frame_data =
|
| std::move(parent_surface_frame_data);
|
|
|
| SurfaceId parent_surface_id = allocator_.GenerateId();
|
| @@ -1260,17 +1278,19 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(root_frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1296,18 +1316,20 @@
|
| new DelegatedFrameData);
|
| child_pass_list.swap(child_frame_data->render_pass_list);
|
|
|
| - CompositorFrame child_frame;
|
| - child_frame.delegated_frame_data = std::move(child_frame_data);
|
| + std::unique_ptr<CompositorFrame> child_frame(new CompositorFrame);
|
| + child_frame->delegated_frame_data = std::move(child_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(child_surface_id, std::move(child_frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1334,8 +1356,8 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(root_frame),
|
| SurfaceFactory::DrawCallback());
|
| @@ -1356,18 +1378,20 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(root_frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1381,12 +1405,14 @@
|
|
|
| // No Surface changed, so no damage should be given.
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1399,12 +1425,14 @@
|
| // marked as damaged.
|
| {
|
| aggregator_.SetFullDamageForSurface(root_surface_id_);
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1435,19 +1463,21 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.SubmitCompositorFrame(root_surface_id_, std::move(root_frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1475,8 +1505,8 @@
|
| std::unique_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
|
| root_pass_list.swap(root_frame_data->render_pass_list);
|
|
|
| - CompositorFrame root_frame;
|
| - root_frame.delegated_frame_data = std::move(root_frame_data);
|
| + std::unique_ptr<CompositorFrame> root_frame(new CompositorFrame);
|
| + root_frame->delegated_frame_data = std::move(root_frame_data);
|
|
|
| factory_.Create(second_root_surface_id);
|
| factory_.SubmitCompositorFrame(second_root_surface_id,
|
| @@ -1485,13 +1515,14 @@
|
| factory_.SetPreviousFrameSurface(second_root_surface_id, root_surface_id_);
|
| }
|
| {
|
| - CompositorFrame aggregated_frame =
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| aggregator_.Aggregate(second_root_surface_id);
|
|
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1502,13 +1533,14 @@
|
| EXPECT_EQ(gfx::Rect(1, 2, 3, 4), aggregated_pass_list[0]->damage_rect);
|
| }
|
| {
|
| - CompositorFrame aggregated_frame =
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| aggregator_.Aggregate(second_root_surface_id);
|
|
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1587,11 +1619,13 @@
|
| SubmitPassListAsFrame(root_surface_id_, &root_pass_list);
|
| }
|
|
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| -
|
| - DelegatedFrameData* frame_data = aggregated_frame.delegated_frame_data.get();
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
| +
|
| + DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1621,12 +1655,14 @@
|
| }
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1675,12 +1711,14 @@
|
| }
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1700,12 +1738,14 @@
|
| }
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
| // There were no changes since last aggregation, so output should be empty
|
| @@ -1741,12 +1781,14 @@
|
| }
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1791,12 +1833,14 @@
|
| }
|
|
|
| {
|
| - CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id_);
|
| -
|
| - ASSERT_TRUE(aggregated_frame.delegated_frame_data);
|
| + std::unique_ptr<CompositorFrame> aggregated_frame =
|
| + aggregator_.Aggregate(root_surface_id_);
|
| +
|
| + ASSERT_TRUE(aggregated_frame);
|
| + ASSERT_TRUE(aggregated_frame->delegated_frame_data);
|
|
|
| DelegatedFrameData* frame_data =
|
| - aggregated_frame.delegated_frame_data.get();
|
| + aggregated_frame->delegated_frame_data.get();
|
|
|
| const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
|
|
|
| @@ -1907,8 +1951,8 @@
|
| nearest_neighbor, secure_output_only);
|
| }
|
| frame_data->render_pass_list.push_back(std::move(pass));
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
| factory->SubmitCompositorFrame(surface_id, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| }
|
| @@ -1923,7 +1967,7 @@
|
| SubmitCompositorFrameWithResources(ids, arraysize(ids), true, SurfaceId(),
|
| &factory, surface_id);
|
|
|
| - CompositorFrame frame = aggregator_->Aggregate(surface_id);
|
| + std::unique_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface_id);
|
|
|
| // Nothing should be available to be returned yet.
|
| EXPECT_TRUE(client.returned_resources().empty());
|
| @@ -1959,12 +2003,13 @@
|
| resource.is_software = false;
|
| frame_data->resource_list.push_back(resource);
|
| frame_data->render_pass_list.push_back(std::move(pass));
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
| factory.SubmitCompositorFrame(surface_id, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
|
|
| - CompositorFrame returned_frame = aggregator_->Aggregate(surface_id);
|
| + std::unique_ptr<CompositorFrame> returned_frame =
|
| + aggregator_->Aggregate(surface_id);
|
|
|
| // Nothing should be available to be returned yet.
|
| EXPECT_TRUE(client.returned_resources().empty());
|
| @@ -1993,7 +2038,7 @@
|
| SubmitCompositorFrameWithResources(ids2, arraysize(ids2), true, SurfaceId(),
|
| &factory, surface2_id);
|
|
|
| - CompositorFrame frame = aggregator_->Aggregate(surface1_id);
|
| + std::unique_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface1_id);
|
|
|
| SubmitCompositorFrameWithResources(NULL, 0, true, SurfaceId(), &factory,
|
| surface1_id);
|
| @@ -2042,10 +2087,10 @@
|
| middle_surface_id, &factory,
|
| root_surface_id);
|
|
|
| - CompositorFrame frame;
|
| + std::unique_ptr<CompositorFrame> frame;
|
| frame = aggregator_->Aggregate(root_surface_id);
|
|
|
| - RenderPassList* pass_list = &frame.delegated_frame_data->render_pass_list;
|
| + RenderPassList* pass_list = &frame->delegated_frame_data->render_pass_list;
|
| ASSERT_EQ(1u, pass_list->size());
|
| EXPECT_EQ(1u, pass_list->back()->shared_quad_state_list.size());
|
| EXPECT_EQ(3u, pass_list->back()->quad_list.size());
|
| @@ -2056,7 +2101,7 @@
|
|
|
| frame = aggregator_->Aggregate(root_surface_id);
|
|
|
| - pass_list = &frame.delegated_frame_data->render_pass_list;
|
| + pass_list = &frame->delegated_frame_data->render_pass_list;
|
| ASSERT_EQ(1u, pass_list->size());
|
| EXPECT_EQ(3u, pass_list->back()->shared_quad_state_list.size());
|
| EXPECT_EQ(9u, pass_list->back()->quad_list.size());
|
| @@ -2079,10 +2124,10 @@
|
| SubmitCompositorFrameWithResources(ids, arraysize(ids), true, SurfaceId(),
|
| &factory, surface1_id);
|
|
|
| - CompositorFrame frame = aggregator_->Aggregate(surface1_id);
|
| + std::unique_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface1_id);
|
|
|
| RenderPass* render_pass =
|
| - frame.delegated_frame_data->render_pass_list.back().get();
|
| + frame->delegated_frame_data->render_pass_list.back().get();
|
|
|
| EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, render_pass->quad_list.back()->material);
|
|
|
| @@ -2099,22 +2144,22 @@
|
| pass->copy_requests.push_back(CopyOutputRequest::CreateEmptyRequest());
|
|
|
| frame_data->render_pass_list.push_back(std::move(pass));
|
| - CompositorFrame frame;
|
| - frame.delegated_frame_data = std::move(frame_data);
|
| + std::unique_ptr<CompositorFrame> frame(new CompositorFrame);
|
| + frame->delegated_frame_data = std::move(frame_data);
|
| factory.SubmitCompositorFrame(surface2_id, std::move(frame),
|
| SurfaceFactory::DrawCallback());
|
| }
|
|
|
| frame = aggregator_->Aggregate(surface2_id);
|
| - EXPECT_EQ(1u, frame.delegated_frame_data->render_pass_list.size());
|
| - render_pass = frame.delegated_frame_data->render_pass_list.front().get();
|
| + EXPECT_EQ(1u, frame->delegated_frame_data->render_pass_list.size());
|
| + render_pass = frame->delegated_frame_data->render_pass_list.front().get();
|
|
|
| // Parent has copy request, so texture should not be drawn.
|
| EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material);
|
|
|
| frame = aggregator_->Aggregate(surface2_id);
|
| - EXPECT_EQ(1u, frame.delegated_frame_data->render_pass_list.size());
|
| - render_pass = frame.delegated_frame_data->render_pass_list.front().get();
|
| + EXPECT_EQ(1u, frame->delegated_frame_data->render_pass_list.size());
|
| + render_pass = frame->delegated_frame_data->render_pass_list.front().get();
|
|
|
| // Copy request has been executed earlier, so texture should be drawn.
|
| EXPECT_EQ(DrawQuad::TEXTURE_CONTENT,
|
| @@ -2123,7 +2168,7 @@
|
| aggregator_->set_output_is_secure(false);
|
|
|
| frame = aggregator_->Aggregate(surface2_id);
|
| - render_pass = frame.delegated_frame_data->render_pass_list.back().get();
|
| + render_pass = frame->delegated_frame_data->render_pass_list.back().get();
|
|
|
| // Output is insecure, so texture should be drawn.
|
| EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material);
|
|
|