diff options
author | jbauman <jbauman@chromium.org> | 2015-04-20 16:24:50 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-20 23:25:12 +0000 |
commit | 2fec59fe4a09ce697e913c1784c7d37dc3910ef0 (patch) | |
tree | 2bd9d90bfd1a12df045d40d78750ccc4cabc49ba /cc/surfaces/surface_aggregator_unittest.cc | |
parent | d63046726e802e8c2818826a5ceace50faa32178 (diff) | |
download | chromium_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.cc | 39 |
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); } |