| 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 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 const QuadList& quad_list = main_pass->quad_list; | 431 const QuadList& quad_list = main_pass->quad_list; |
| 432 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 432 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
| 433 it != quad_list.BackToFrontEnd(); ++it) { | 433 it != quad_list.BackToFrontEnd(); ++it) { |
| 434 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); | 434 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); |
| 435 } | 435 } |
| 436 | 436 |
| 437 // Check that the right resource id got extracted. | 437 // Check that the right resource id got extracted. |
| 438 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); | 438 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); |
| 439 } | 439 } |
| 440 | 440 |
| 441 TEST_F(SandwichTest, CroppedSingleOverlay) { |
| 442 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
| 443 pass->shared_quad_state_list.back()->is_clipped = true; |
| 444 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(0, 32, 64, 64); |
| 445 |
| 446 TextureDrawQuad* original_quad = CreateFullscreenCandidateQuad( |
| 447 resource_provider_.get(), pass->shared_quad_state_list.back(), |
| 448 pass.get()); |
| 449 original_quad->uv_top_left = gfx::PointF(0, 0); |
| 450 original_quad->uv_bottom_right = gfx::PointF(1, 1); |
| 451 unsigned candidate_id = original_quad->resource_id(); |
| 452 |
| 453 // Add something behind it. |
| 454 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
| 455 pass->shared_quad_state_list.back(), pass.get()); |
| 456 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
| 457 pass->shared_quad_state_list.back(), pass.get()); |
| 458 |
| 459 RenderPassList pass_list; |
| 460 pass_list.push_back(pass.Pass()); |
| 461 |
| 462 // Check for potential candidates. |
| 463 OverlayCandidateList candidate_list; |
| 464 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list); |
| 465 |
| 466 // Ensure that the display and uv rects have cropping applied to them. |
| 467 ASSERT_EQ(1U, pass_list.size()); |
| 468 ASSERT_EQ(2U, candidate_list.size()); |
| 469 EXPECT_EQ(candidate_id, candidate_list[1].resource_id); |
| 470 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[1].display_rect); |
| 471 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[1].uv_rect); |
| 472 } |
| 473 |
| 441 TEST_F(SandwichTest, SuccessfulTwoOverlays) { | 474 TEST_F(SandwichTest, SuccessfulTwoOverlays) { |
| 442 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 475 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
| 443 | 476 |
| 444 // Add two non-overlapping candidates. | 477 // Add two non-overlapping candidates. |
| 445 CreateCandidateQuadAt(resource_provider_.get(), | 478 CreateCandidateQuadAt(resource_provider_.get(), |
| 446 pass->shared_quad_state_list.back(), pass.get(), | 479 pass->shared_quad_state_list.back(), pass.get(), |
| 447 kOverlayTopLeftRect); | 480 kOverlayTopLeftRect); |
| 448 CreateCandidateQuadAt(resource_provider_.get(), | 481 CreateCandidateQuadAt(resource_provider_.get(), |
| 449 pass->shared_quad_state_list.back(), pass.get(), | 482 pass->shared_quad_state_list.back(), pass.get(), |
| 450 kOverlayBottomRightRect); | 483 kOverlayBottomRightRect); |
| (...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1568 renderer_->BeginDrawingFrame(&frame_no_overlays); | 1601 renderer_->BeginDrawingFrame(&frame_no_overlays); |
| 1569 renderer_->FinishDrawingFrame(&frame_no_overlays); | 1602 renderer_->FinishDrawingFrame(&frame_no_overlays); |
| 1570 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 1603 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
| 1571 SwapBuffers(); | 1604 SwapBuffers(); |
| 1572 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1605 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
| 1573 Mock::VerifyAndClearExpectations(&scheduler_); | 1606 Mock::VerifyAndClearExpectations(&scheduler_); |
| 1574 } | 1607 } |
| 1575 | 1608 |
| 1576 } // namespace | 1609 } // namespace |
| 1577 } // namespace cc | 1610 } // namespace cc |
| OLD | NEW |