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 1390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1401 }; | 1401 }; |
1402 | 1402 |
1403 TEST_F(GLRendererWithOverlaysTest, OverlayQuadNotDrawn) { | 1403 TEST_F(GLRendererWithOverlaysTest, OverlayQuadNotDrawn) { |
1404 bool use_validator = true; | 1404 bool use_validator = true; |
1405 Init(use_validator); | 1405 Init(use_validator); |
1406 renderer_->set_expect_overlays(true); | 1406 renderer_->set_expect_overlays(true); |
1407 gfx::Rect viewport_rect(16, 16); | 1407 gfx::Rect viewport_rect(16, 16); |
1408 | 1408 |
1409 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1409 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1410 | 1410 |
1411 CreateCandidateQuadAt(resource_provider_.get(), | 1411 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1412 pass->shared_quad_state_list.back(), pass.get(), | 1412 pass->shared_quad_state_list.back(), |
1413 kOverlayBottomRightRect); | 1413 pass.get()); |
| 1414 |
1414 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 1415 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
1415 pass->shared_quad_state_list.back(), pass.get()); | 1416 pass->shared_quad_state_list.back(), pass.get()); |
1416 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 1417 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
1417 pass->shared_quad_state_list.back(), pass.get()); | 1418 pass->shared_quad_state_list.back(), pass.get()); |
1418 | 1419 |
1419 RenderPassList pass_list; | 1420 RenderPassList pass_list; |
1420 pass_list.push_back(pass.Pass()); | 1421 pass_list.push_back(pass.Pass()); |
1421 | 1422 |
1422 // Candidate pass was taken out and extra skipped pass added, | 1423 // Candidate pass was taken out and extra skipped pass added, |
1423 // so only draw 2 quads. | 1424 // so only draw 2 quads. |
1424 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2); | 1425 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2); |
1425 EXPECT_CALL(scheduler_, | 1426 EXPECT_CALL(scheduler_, |
1426 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _, | 1427 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _, |
1427 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1))) | 1428 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1))) |
1428 .Times(1); | |
1429 EXPECT_CALL(scheduler_, Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, | |
1430 kOverlayBottomRightRect, | |
1431 BoundingRect(kUVTopLeft, kUVBottomRight))) | |
1432 .Times(1); | |
1433 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); | |
1434 | |
1435 SwapBuffers(); | |
1436 | |
1437 Mock::VerifyAndClearExpectations(renderer_.get()); | |
1438 Mock::VerifyAndClearExpectations(&scheduler_); | |
1439 } | |
1440 | |
1441 TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawn) { | |
1442 bool use_validator = true; | |
1443 Init(use_validator); | |
1444 renderer_->set_expect_overlays(true); | |
1445 gfx::Rect viewport_rect(16, 16); | |
1446 | |
1447 scoped_ptr<RenderPass> pass = CreateRenderPass(); | |
1448 | |
1449 CreateFullscreenCandidateQuad(resource_provider_.get(), | |
1450 pass->shared_quad_state_list.back(), | |
1451 pass.get()); | |
1452 | |
1453 CreateFullscreenOpaqueQuad(resource_provider_.get(), | |
1454 pass->shared_quad_state_list.back(), pass.get()); | |
1455 CreateFullscreenOpaqueQuad(resource_provider_.get(), | |
1456 pass->shared_quad_state_list.back(), pass.get()); | |
1457 | |
1458 RenderPassList pass_list; | |
1459 pass_list.push_back(pass.Pass()); | |
1460 | |
1461 // Candidate covers all the quads, so we shouldn't have any draw quad calls. | |
1462 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0); | |
1463 EXPECT_CALL(scheduler_, | |
1464 Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _, | |
1465 gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1))) | |
1466 .Times(1); | 1429 .Times(1); |
1467 EXPECT_CALL(scheduler_, | 1430 EXPECT_CALL(scheduler_, |
1468 Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect, | 1431 Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect, |
1469 BoundingRect(kUVTopLeft, kUVBottomRight))) | 1432 BoundingRect(kUVTopLeft, kUVBottomRight))) |
1470 .Times(1); | 1433 .Times(1); |
1471 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); | 1434 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); |
1472 | 1435 |
1473 SwapBuffers(); | 1436 SwapBuffers(); |
1474 | 1437 |
1475 Mock::VerifyAndClearExpectations(renderer_.get()); | 1438 Mock::VerifyAndClearExpectations(renderer_.get()); |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 renderer_->BeginDrawingFrame(&frame_no_overlays); | 1625 renderer_->BeginDrawingFrame(&frame_no_overlays); |
1663 renderer_->FinishDrawingFrame(&frame_no_overlays); | 1626 renderer_->FinishDrawingFrame(&frame_no_overlays); |
1664 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 1627 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
1665 SwapBuffers(); | 1628 SwapBuffers(); |
1666 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1629 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
1667 Mock::VerifyAndClearExpectations(&scheduler_); | 1630 Mock::VerifyAndClearExpectations(&scheduler_); |
1668 } | 1631 } |
1669 | 1632 |
1670 } // namespace | 1633 } // namespace |
1671 } // namespace cc | 1634 } // namespace cc |
OLD | NEW |