summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/surface_aggregator_unittest.cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-04-20 16:24:50 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-20 23:25:12 +0000
commit2fec59fe4a09ce697e913c1784c7d37dc3910ef0 (patch)
tree2bd9d90bfd1a12df045d40d78750ccc4cabc49ba /cc/surfaces/surface_aggregator_unittest.cc
parentd63046726e802e8c2818826a5ceace50faa32178 (diff)
downloadchromium_src-2fec59fe4a09ce697e913c1784c7d37dc3910ef0.zip
chromium_src-2fec59fe4a09ce697e913c1784c7d37dc3910ef0.tar.gz
chromium_src-2fec59fe4a09ce697e913c1784c7d37dc3910ef0.tar.bz2
Implement SetFullRootLayerDamage for cc::Display
This causes the SurfaceAggregator to consider the entire root Surface as being completely damaged. BUG=477609 Review URL: https://codereview.chromium.org/1092183002 Cr-Commit-Position: refs/heads/master@{#325934}
Diffstat (limited to 'cc/surfaces/surface_aggregator_unittest.cc')
-rw-r--r--cc/surfaces/surface_aggregator_unittest.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc
index a336555..40a3d57 100644
--- a/cc/surfaces/surface_aggregator_unittest.cc
+++ b/cc/surfaces/surface_aggregator_unittest.cc
@@ -1230,6 +1230,45 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, AggregateDamageRect) {
gfx::Rect(SurfaceSize())));
}
+ // No Surface changed, so no damage should be given.
+ {
+ scoped_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;
+
+ ASSERT_EQ(2u, aggregated_pass_list.size());
+
+ EXPECT_TRUE(aggregated_pass_list[1]->damage_rect.IsEmpty());
+ }
+
+ // SetFullDamageRectForSurface should cause the entire output to be
+ // marked as damaged.
+ {
+ aggregator_.SetFullDamageForSurface(root_surface_id_);
+ scoped_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;
+
+ ASSERT_EQ(2u, aggregated_pass_list.size());
+
+ EXPECT_TRUE(aggregated_pass_list[1]->damage_rect.Contains(
+ gfx::Rect(SurfaceSize())));
+ }
+
factory_.Destroy(child_surface_id);
}