| 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 |
| 436 TEST_F(SandwichTest, SuccessfulTwoOverlays) { | 469 TEST_F(SandwichTest, SuccessfulTwoOverlays) { |
| 437 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 470 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
| 438 | 471 |
| 439 // Add two non-overlapping candidates. | 472 // Add two non-overlapping candidates. |
| 440 CreateCandidateQuadAt(resource_provider_.get(), | 473 CreateCandidateQuadAt(resource_provider_.get(), |
| 441 pass->shared_quad_state_list.back(), pass.get(), | 474 pass->shared_quad_state_list.back(), pass.get(), |
| 442 kOverlayTopLeftRect); | 475 kOverlayTopLeftRect); |
| 443 CreateCandidateQuadAt(resource_provider_.get(), | 476 CreateCandidateQuadAt(resource_provider_.get(), |
| 444 pass->shared_quad_state_list.back(), pass.get(), | 477 pass->shared_quad_state_list.back(), pass.get(), |
| 445 kOverlayBottomRightRect); | 478 kOverlayBottomRightRect); |
| (...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1546 renderer_->BeginDrawingFrame(&frame_no_overlays); | 1579 renderer_->BeginDrawingFrame(&frame_no_overlays); |
| 1547 renderer_->FinishDrawingFrame(&frame_no_overlays); | 1580 renderer_->FinishDrawingFrame(&frame_no_overlays); |
| 1548 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 1581 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
| 1549 SwapBuffers(); | 1582 SwapBuffers(); |
| 1550 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1583 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
| 1551 Mock::VerifyAndClearExpectations(&scheduler_); | 1584 Mock::VerifyAndClearExpectations(&scheduler_); |
| 1552 } | 1585 } |
| 1553 | 1586 |
| 1554 } // namespace | 1587 } // namespace |
| 1555 } // namespace cc | 1588 } // namespace cc |
| OLD | NEW |