| Index: cc/output/overlay_unittest.cc
|
| diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
|
| index 9faf8237fcd65b240b6931192ae20bff8aa808c0..fc572b9c8c25cc5d5d680a055191faaad2e801b8 100644
|
| --- a/cc/output/overlay_unittest.cc
|
| +++ b/cc/output/overlay_unittest.cc
|
| @@ -433,6 +433,70 @@ TEST_F(SandwichTest, SuccessfulSingleOverlay) {
|
| EXPECT_EQ(original_resource_id, candidate_list.back().resource_id);
|
| }
|
|
|
| +TEST_F(SandwichTest, SuccessfulTwoOverlays) {
|
| + scoped_ptr<RenderPass> pass = CreateRenderPass();
|
| +
|
| + // Add two non-overlapping candidates.
|
| + CreateCandidateQuadAt(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get(),
|
| + kOverlayTopLeftRect);
|
| + CreateCandidateQuadAt(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get(),
|
| + kOverlayBottomRightRect);
|
| +
|
| + // Add something behind it.
|
| + CreateFullscreenOpaqueQuad(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get());
|
| +
|
| + RenderPassList pass_list;
|
| + pass_list.push_back(pass.Pass());
|
| + OverlayCandidateList candidate_list;
|
| + overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
|
| +
|
| + // Both candidates should become overlays.
|
| + EXPECT_EQ(1u, pass_list.size());
|
| + EXPECT_EQ(3u, candidate_list.size());
|
| + EXPECT_EQ(kOverlayTopLeftRect, candidate_list[1].display_rect);
|
| + EXPECT_EQ(kOverlayBottomRightRect, candidate_list[2].display_rect);
|
| +
|
| + // The overlay quads should be gone.
|
| + const QuadList& quad_list = pass_list.back()->quad_list;
|
| + EXPECT_EQ(1u, quad_list.size());
|
| + EXPECT_EQ(DrawQuad::SOLID_COLOR, quad_list.front()->material);
|
| +}
|
| +
|
| +TEST_F(SandwichTest, OverlappingOverlays) {
|
| + scoped_ptr<RenderPass> pass = CreateRenderPass();
|
| +
|
| + // Add two overlapping candidates.
|
| + CreateCandidateQuadAt(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get(),
|
| + kOverlayTopLeftRect);
|
| + CreateCandidateQuadAt(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get(),
|
| + kOverlayRect);
|
| +
|
| + // Add something behind it.
|
| + CreateFullscreenOpaqueQuad(resource_provider_.get(),
|
| + pass->shared_quad_state_list.back(), pass.get());
|
| +
|
| + RenderPassList pass_list;
|
| + pass_list.push_back(pass.Pass());
|
| + OverlayCandidateList candidate_list;
|
| + overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
|
| +
|
| + // Only one of the candidates should become an overlay.
|
| + EXPECT_EQ(1u, pass_list.size());
|
| + EXPECT_EQ(2u, candidate_list.size());
|
| + EXPECT_EQ(kOverlayTopLeftRect, candidate_list[1].display_rect);
|
| +
|
| + // One of the overlay quads should be gone.
|
| + const QuadList& quad_list = pass_list.back()->quad_list;
|
| + EXPECT_EQ(2u, quad_list.size());
|
| + EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, quad_list.front()->material);
|
| + EXPECT_EQ(DrawQuad::SOLID_COLOR, quad_list.back()->material);
|
| +}
|
| +
|
| TEST_F(SandwichTest, SuccessfulSandwichOverlay) {
|
| scoped_ptr<RenderPass> pass = CreateRenderPass();
|
|
|
|
|