| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/base/region.h" | 5 #include "cc/base/region.h" |
| 6 #include "cc/base/scoped_ptr_vector.h" | 6 #include "cc/base/scoped_ptr_vector.h" |
| 7 #include "cc/output/compositor_frame_metadata.h" | 7 #include "cc/output/compositor_frame_metadata.h" |
| 8 #include "cc/output/gl_renderer.h" | 8 #include "cc/output/gl_renderer.h" |
| 9 #include "cc/output/output_surface.h" | 9 #include "cc/output/output_surface.h" |
| 10 #include "cc/output/output_surface_client.h" | 10 #include "cc/output/output_surface_client.h" |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 const QuadList& quad_list = main_pass->quad_list; | 426 const QuadList& quad_list = main_pass->quad_list; |
| 427 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 427 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
| 428 it != quad_list.BackToFrontEnd(); ++it) { | 428 it != quad_list.BackToFrontEnd(); ++it) { |
| 429 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); | 429 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); |
| 430 } | 430 } |
| 431 | 431 |
| 432 // Check that the right resource id got extracted. | 432 // Check that the right resource id got extracted. |
| 433 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); | 433 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); |
| 434 } | 434 } |
| 435 | 435 |
| 436 TEST_F(SandwichTest, CroppedSingleOverlay) { | |
| 437 scoped_ptr<RenderPass> pass = CreateRenderPass(); | |
| 438 pass->shared_quad_state_list.back()->is_clipped = true; | |
| 439 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(0, 32, 64, 64); | |
| 440 | |
| 441 TextureDrawQuad* original_quad = CreateFullscreenCandidateQuad( | |
| 442 resource_provider_.get(), pass->shared_quad_state_list.back(), | |
| 443 pass.get()); | |
| 444 original_quad->uv_top_left = gfx::PointF(0, 0); | |
| 445 original_quad->uv_bottom_right = gfx::PointF(1, 1); | |
| 446 unsigned candidate_id = original_quad->resource_id(); | |
| 447 | |
| 448 // Add something behind it. | |
| 449 CreateFullscreenOpaqueQuad(resource_provider_.get(), | |
| 450 pass->shared_quad_state_list.back(), pass.get()); | |
| 451 CreateFullscreenOpaqueQuad(resource_provider_.get(), | |
| 452 pass->shared_quad_state_list.back(), pass.get()); | |
| 453 | |
| 454 RenderPassList pass_list; | |
| 455 pass_list.push_back(pass.Pass()); | |
| 456 | |
| 457 // Check for potential candidates. | |
| 458 OverlayCandidateList candidate_list; | |
| 459 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list); | |
| 460 | |
| 461 // Ensure that the display and uv rects have cropping applied to them. | |
| 462 ASSERT_EQ(1U, pass_list.size()); | |
| 463 ASSERT_EQ(2U, candidate_list.size()); | |
| 464 EXPECT_EQ(candidate_id, candidate_list[1].resource_id); | |
| 465 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[1].display_rect); | |
| 466 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[1].uv_rect); | |
| 467 } | |
| 468 | |
| 469 TEST_F(SandwichTest, SuccessfulTwoOverlays) { | 436 TEST_F(SandwichTest, SuccessfulTwoOverlays) { |
| 470 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 437 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
| 471 | 438 |
| 472 // Add two non-overlapping candidates. | 439 // Add two non-overlapping candidates. |
| 473 CreateCandidateQuadAt(resource_provider_.get(), | 440 CreateCandidateQuadAt(resource_provider_.get(), |
| 474 pass->shared_quad_state_list.back(), pass.get(), | 441 pass->shared_quad_state_list.back(), pass.get(), |
| 475 kOverlayTopLeftRect); | 442 kOverlayTopLeftRect); |
| 476 CreateCandidateQuadAt(resource_provider_.get(), | 443 CreateCandidateQuadAt(resource_provider_.get(), |
| 477 pass->shared_quad_state_list.back(), pass.get(), | 444 pass->shared_quad_state_list.back(), pass.get(), |
| 478 kOverlayBottomRightRect); | 445 kOverlayBottomRightRect); |
| (...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1579 renderer_->BeginDrawingFrame(&frame_no_overlays); | 1546 renderer_->BeginDrawingFrame(&frame_no_overlays); |
| 1580 renderer_->FinishDrawingFrame(&frame_no_overlays); | 1547 renderer_->FinishDrawingFrame(&frame_no_overlays); |
| 1581 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 1548 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
| 1582 SwapBuffers(); | 1549 SwapBuffers(); |
| 1583 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1550 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
| 1584 Mock::VerifyAndClearExpectations(&scheduler_); | 1551 Mock::VerifyAndClearExpectations(&scheduler_); |
| 1585 } | 1552 } |
| 1586 | 1553 |
| 1587 } // namespace | 1554 } // namespace |
| 1588 } // namespace cc | 1555 } // namespace cc |
| OLD | NEW |