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/output/compositor_frame_metadata.h" | 6 #include "cc/output/compositor_frame_metadata.h" |
7 #include "cc/output/gl_renderer.h" | 7 #include "cc/output/gl_renderer.h" |
8 #include "cc/output/output_surface.h" | 8 #include "cc/output/output_surface.h" |
9 #include "cc/output/output_surface_client.h" | 9 #include "cc/output/output_surface_client.h" |
10 #include "cc/output/overlay_candidate_validator.h" | 10 #include "cc/output/overlay_candidate_validator.h" |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 pass->shared_quad_state_list.back(), pass.get()); | 406 pass->shared_quad_state_list.back(), pass.get()); |
407 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 407 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
408 pass->shared_quad_state_list.back(), pass.get()); | 408 pass->shared_quad_state_list.back(), pass.get()); |
409 | 409 |
410 RenderPassList pass_list; | 410 RenderPassList pass_list; |
411 pass_list.push_back(pass.Pass()); | 411 pass_list.push_back(pass.Pass()); |
412 | 412 |
413 // Check for potential candidates. | 413 // Check for potential candidates. |
414 OverlayCandidateList candidate_list; | 414 OverlayCandidateList candidate_list; |
415 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 415 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
416 &candidate_list, &damage_rect_); | 416 &candidate_list, nullptr, |
| 417 &damage_rect_); |
417 | 418 |
418 ASSERT_EQ(1U, pass_list.size()); | 419 ASSERT_EQ(1U, pass_list.size()); |
419 ASSERT_EQ(1U, candidate_list.size()); | 420 ASSERT_EQ(1U, candidate_list.size()); |
420 | 421 |
421 RenderPass* main_pass = pass_list.back().get(); | 422 RenderPass* main_pass = pass_list.back().get(); |
422 // Check that the quad is gone. | 423 // Check that the quad is gone. |
423 EXPECT_EQ(2U, main_pass->quad_list.size()); | 424 EXPECT_EQ(2U, main_pass->quad_list.size()); |
424 const QuadList& quad_list = main_pass->quad_list; | 425 const QuadList& quad_list = main_pass->quad_list; |
425 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 426 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
426 it != quad_list.BackToFrontEnd(); ++it) { | 427 it != quad_list.BackToFrontEnd(); ++it) { |
(...skipping 21 matching lines...) Expand all Loading... |
448 pass->shared_quad_state_list.back(), pass.get()); | 449 pass->shared_quad_state_list.back(), pass.get()); |
449 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 450 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
450 pass->shared_quad_state_list.back(), pass.get()); | 451 pass->shared_quad_state_list.back(), pass.get()); |
451 | 452 |
452 RenderPassList pass_list; | 453 RenderPassList pass_list; |
453 pass_list.push_back(pass.Pass()); | 454 pass_list.push_back(pass.Pass()); |
454 | 455 |
455 // Check for potential candidates. | 456 // Check for potential candidates. |
456 OverlayCandidateList candidate_list; | 457 OverlayCandidateList candidate_list; |
457 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 458 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
458 &candidate_list, &damage_rect_); | 459 &candidate_list, nullptr, |
| 460 &damage_rect_); |
459 | 461 |
460 // Ensure that the display and uv rects have cropping applied to them. | 462 // Ensure that the display and uv rects have cropping applied to them. |
461 ASSERT_EQ(1U, pass_list.size()); | 463 ASSERT_EQ(1U, pass_list.size()); |
462 ASSERT_EQ(1U, candidate_list.size()); | 464 ASSERT_EQ(1U, candidate_list.size()); |
463 EXPECT_EQ(candidate_id, candidate_list[0].resource_id); | 465 EXPECT_EQ(candidate_id, candidate_list[0].resource_id); |
464 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[0].display_rect); | 466 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[0].display_rect); |
465 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[0].uv_rect); | 467 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[0].uv_rect); |
466 } | 468 } |
467 | 469 |
468 TEST_F(SandwichTest, SuccessfulTwoOverlays) { | 470 TEST_F(SandwichTest, SuccessfulTwoOverlays) { |
469 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 471 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
470 | 472 |
471 // Add two non-overlapping candidates. | 473 // Add two non-overlapping candidates. |
472 CreateCandidateQuadAt(resource_provider_.get(), | 474 CreateCandidateQuadAt(resource_provider_.get(), |
473 pass->shared_quad_state_list.back(), pass.get(), | 475 pass->shared_quad_state_list.back(), pass.get(), |
474 kOverlayTopLeftRect); | 476 kOverlayTopLeftRect); |
475 CreateCandidateQuadAt(resource_provider_.get(), | 477 CreateCandidateQuadAt(resource_provider_.get(), |
476 pass->shared_quad_state_list.back(), pass.get(), | 478 pass->shared_quad_state_list.back(), pass.get(), |
477 kOverlayBottomRightRect); | 479 kOverlayBottomRightRect); |
478 | 480 |
479 // Add something behind it. | 481 // Add something behind it. |
480 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 482 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
481 pass->shared_quad_state_list.back(), pass.get()); | 483 pass->shared_quad_state_list.back(), pass.get()); |
482 | 484 |
483 RenderPassList pass_list; | 485 RenderPassList pass_list; |
484 pass_list.push_back(pass.Pass()); | 486 pass_list.push_back(pass.Pass()); |
485 OverlayCandidateList candidate_list; | 487 OverlayCandidateList candidate_list; |
486 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 488 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
487 &candidate_list, &damage_rect_); | 489 &candidate_list, nullptr, |
| 490 &damage_rect_); |
488 | 491 |
489 // Both candidates should become overlays. | 492 // Both candidates should become overlays. |
490 EXPECT_EQ(1u, pass_list.size()); | 493 EXPECT_EQ(1u, pass_list.size()); |
491 EXPECT_EQ(2u, candidate_list.size()); | 494 EXPECT_EQ(2u, candidate_list.size()); |
492 EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect); | 495 EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect); |
493 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), | 496 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), |
494 candidate_list[1].display_rect); | 497 candidate_list[1].display_rect); |
495 | 498 |
496 // The overlay quads should be gone. | 499 // The overlay quads should be gone. |
497 const QuadList& quad_list = pass_list.back()->quad_list; | 500 const QuadList& quad_list = pass_list.back()->quad_list; |
(...skipping 13 matching lines...) Expand all Loading... |
511 kOverlayRect); | 514 kOverlayRect); |
512 | 515 |
513 // Add something behind it. | 516 // Add something behind it. |
514 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 517 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
515 pass->shared_quad_state_list.back(), pass.get()); | 518 pass->shared_quad_state_list.back(), pass.get()); |
516 | 519 |
517 RenderPassList pass_list; | 520 RenderPassList pass_list; |
518 pass_list.push_back(pass.Pass()); | 521 pass_list.push_back(pass.Pass()); |
519 OverlayCandidateList candidate_list; | 522 OverlayCandidateList candidate_list; |
520 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 523 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
521 &candidate_list, &damage_rect_); | 524 &candidate_list, nullptr, |
| 525 &damage_rect_); |
522 | 526 |
523 // Only one of the candidates should become an overlay. | 527 // Only one of the candidates should become an overlay. |
524 EXPECT_EQ(1u, pass_list.size()); | 528 EXPECT_EQ(1u, pass_list.size()); |
525 EXPECT_EQ(1u, candidate_list.size()); | 529 EXPECT_EQ(1u, candidate_list.size()); |
526 EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect); | 530 EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect); |
527 | 531 |
528 // One of the overlay quads should be gone. | 532 // One of the overlay quads should be gone. |
529 const QuadList& quad_list = pass_list.back()->quad_list; | 533 const QuadList& quad_list = pass_list.back()->quad_list; |
530 EXPECT_EQ(2u, quad_list.size()); | 534 EXPECT_EQ(2u, quad_list.size()); |
531 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, quad_list.front()->material); | 535 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, quad_list.front()->material); |
(...skipping 14 matching lines...) Expand all Loading... |
546 CreateOpaqueQuadAt(resource_provider_.get(), | 550 CreateOpaqueQuadAt(resource_provider_.get(), |
547 pass->shared_quad_state_list.back(), pass.get(), | 551 pass->shared_quad_state_list.back(), pass.get(), |
548 gfx::Rect(kDisplaySize)); | 552 gfx::Rect(kDisplaySize)); |
549 | 553 |
550 RenderPassList pass_list; | 554 RenderPassList pass_list; |
551 pass_list.push_back(pass.Pass()); | 555 pass_list.push_back(pass.Pass()); |
552 | 556 |
553 // Check for potential candidates. | 557 // Check for potential candidates. |
554 OverlayCandidateList candidate_list; | 558 OverlayCandidateList candidate_list; |
555 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 559 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
556 &candidate_list, &damage_rect_); | 560 &candidate_list, nullptr, |
| 561 &damage_rect_); |
557 ASSERT_EQ(1U, pass_list.size()); | 562 ASSERT_EQ(1U, pass_list.size()); |
558 ASSERT_EQ(2U, candidate_list.size()); | 563 ASSERT_EQ(2U, candidate_list.size()); |
559 | 564 |
560 RenderPass* main_pass = pass_list.back().get(); | 565 RenderPass* main_pass = pass_list.back().get(); |
561 // Check that the quad is gone. | 566 // Check that the quad is gone. |
562 EXPECT_EQ(3U, main_pass->quad_list.size()); | 567 EXPECT_EQ(3U, main_pass->quad_list.size()); |
563 const QuadList& quad_list = main_pass->quad_list; | 568 const QuadList& quad_list = main_pass->quad_list; |
564 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 569 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
565 it != quad_list.BackToFrontEnd(); ++it) { | 570 it != quad_list.BackToFrontEnd(); ++it) { |
566 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); | 571 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 gfx::Rect(kDisplaySize)); | 606 gfx::Rect(kDisplaySize)); |
602 | 607 |
603 RenderPassList pass_list; | 608 RenderPassList pass_list; |
604 pass_list.push_back(pass.Pass()); | 609 pass_list.push_back(pass.Pass()); |
605 | 610 |
606 // Run the overlay strategy on that input. | 611 // Run the overlay strategy on that input. |
607 RenderPass* main_pass = pass_list.back().get(); | 612 RenderPass* main_pass = pass_list.back().get(); |
608 OverlayCandidateList candidate_list; | 613 OverlayCandidateList candidate_list; |
609 EXPECT_EQ(4U, main_pass->quad_list.size()); | 614 EXPECT_EQ(4U, main_pass->quad_list.size()); |
610 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 615 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
611 &candidate_list, &damage_rect_); | 616 &candidate_list, nullptr, |
| 617 &damage_rect_); |
612 ASSERT_EQ(1U, pass_list.size()); | 618 ASSERT_EQ(1U, pass_list.size()); |
613 ASSERT_EQ(3U, candidate_list.size()); | 619 ASSERT_EQ(3U, candidate_list.size()); |
614 | 620 |
615 // Check that the candidate quad is gone and that we now have two transparent | 621 // Check that the candidate quad is gone and that we now have two transparent |
616 // quads for the same region that was covered on the overlay. | 622 // quads for the same region that was covered on the overlay. |
617 EXPECT_EQ(5U, main_pass->quad_list.size()); | 623 EXPECT_EQ(5U, main_pass->quad_list.size()); |
618 const QuadList& quad_list = main_pass->quad_list; | 624 const QuadList& quad_list = main_pass->quad_list; |
619 Region transparent_quad_region; | 625 Region transparent_quad_region; |
620 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 626 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
621 it != quad_list.BackToFrontEnd(); ++it) { | 627 it != quad_list.BackToFrontEnd(); ++it) { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
662 | 668 |
663 // Primary plane. | 669 // Primary plane. |
664 OverlayCandidate output_surface_plane; | 670 OverlayCandidate output_surface_plane; |
665 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); | 671 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); |
666 output_surface_plane.quad_rect_in_target_space = kOverlayRect; | 672 output_surface_plane.quad_rect_in_target_space = kOverlayRect; |
667 output_surface_plane.use_output_surface_for_resource = true; | 673 output_surface_plane.use_output_surface_for_resource = true; |
668 output_surface_plane.overlay_handled = true; | 674 output_surface_plane.overlay_handled = true; |
669 candidate_list.push_back(output_surface_plane); | 675 candidate_list.push_back(output_surface_plane); |
670 | 676 |
671 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 677 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
672 &candidate_list, &damage_rect_); | 678 &candidate_list, nullptr, |
673 DCHECK(!damage_rect_.IsEmpty()); | 679 &damage_rect_); |
| 680 EXPECT_EQ(2u, candidate_list.size()); |
| 681 EXPECT_TRUE(damage_rect_.IsEmpty()); |
674 } | 682 } |
675 | 683 |
676 TEST_F(SingleOverlayOnTopTest, SuccessfullOverlay) { | 684 TEST_F(SandwichTest, DamageRectNonEmpty) { |
| 685 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
| 686 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
| 687 pass->shared_quad_state_list.back(), pass.get()); |
| 688 CreateFullscreenCandidateQuad(resource_provider_.get(), |
| 689 pass->shared_quad_state_list.back(), |
| 690 pass.get()); |
| 691 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
| 692 pass->shared_quad_state_list.back(), pass.get()); |
| 693 damage_rect_ = kOverlayRect; |
| 694 |
| 695 RenderPassList pass_list; |
| 696 pass_list.push_back(pass.Pass()); |
| 697 |
| 698 // Check for potential candidates. |
| 699 OverlayCandidateList candidate_list; |
| 700 |
| 701 // Primary plane. |
| 702 OverlayCandidate output_surface_plane; |
| 703 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); |
| 704 output_surface_plane.quad_rect_in_target_space = kOverlayRect; |
| 705 output_surface_plane.use_output_surface_for_resource = true; |
| 706 output_surface_plane.overlay_handled = true; |
| 707 candidate_list.push_back(output_surface_plane); |
| 708 |
| 709 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
| 710 &candidate_list, nullptr, |
| 711 &damage_rect_); |
| 712 EXPECT_EQ(3u, candidate_list.size()); |
| 713 EXPECT_EQ(damage_rect_, kOverlayRect); |
| 714 } |
| 715 |
| 716 TEST_F(SingleOverlayOnTopTest, SuccessfulOverlay) { |
677 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 717 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
678 TextureDrawQuad* original_quad = | 718 TextureDrawQuad* original_quad = |
679 CreateFullscreenCandidateQuad(resource_provider_.get(), | 719 CreateFullscreenCandidateQuad(resource_provider_.get(), |
680 pass->shared_quad_state_list.back(), | 720 pass->shared_quad_state_list.back(), |
681 pass.get()); | 721 pass.get()); |
682 unsigned original_resource_id = original_quad->resource_id(); | 722 unsigned original_resource_id = original_quad->resource_id(); |
683 | 723 |
684 // Add something behind it. | 724 // Add something behind it. |
685 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 725 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
686 pass->shared_quad_state_list.back(), pass.get()); | 726 pass->shared_quad_state_list.back(), pass.get()); |
687 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 727 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
688 pass->shared_quad_state_list.back(), pass.get()); | 728 pass->shared_quad_state_list.back(), pass.get()); |
689 | 729 |
690 RenderPassList pass_list; | 730 RenderPassList pass_list; |
691 pass_list.push_back(pass.Pass()); | 731 pass_list.push_back(pass.Pass()); |
692 | 732 |
693 // Check for potential candidates. | 733 // Check for potential candidates. |
694 OverlayCandidateList candidate_list; | 734 OverlayCandidateList candidate_list; |
695 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 735 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
696 &candidate_list, &damage_rect_); | 736 &candidate_list, nullptr, |
| 737 &damage_rect_); |
697 | 738 |
698 ASSERT_EQ(1U, pass_list.size()); | 739 ASSERT_EQ(1U, pass_list.size()); |
699 ASSERT_EQ(1U, candidate_list.size()); | 740 ASSERT_EQ(1U, candidate_list.size()); |
700 | 741 |
701 RenderPass* main_pass = pass_list.back().get(); | 742 RenderPass* main_pass = pass_list.back().get(); |
702 // Check that the quad is gone. | 743 // Check that the quad is gone. |
703 EXPECT_EQ(2U, main_pass->quad_list.size()); | 744 EXPECT_EQ(2U, main_pass->quad_list.size()); |
704 const QuadList& quad_list = main_pass->quad_list; | 745 const QuadList& quad_list = main_pass->quad_list; |
705 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); | 746 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); |
706 it != quad_list.BackToFrontEnd(); | 747 it != quad_list.BackToFrontEnd(); |
(...skipping 26 matching lines...) Expand all Loading... |
733 | 774 |
734 // Primary plane. | 775 // Primary plane. |
735 OverlayCandidate output_surface_plane; | 776 OverlayCandidate output_surface_plane; |
736 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); | 777 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); |
737 output_surface_plane.quad_rect_in_target_space = kOverlayRect; | 778 output_surface_plane.quad_rect_in_target_space = kOverlayRect; |
738 output_surface_plane.use_output_surface_for_resource = true; | 779 output_surface_plane.use_output_surface_for_resource = true; |
739 output_surface_plane.overlay_handled = true; | 780 output_surface_plane.overlay_handled = true; |
740 candidate_list.push_back(output_surface_plane); | 781 candidate_list.push_back(output_surface_plane); |
741 | 782 |
742 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 783 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
743 &candidate_list, &damage_rect_); | 784 &candidate_list, nullptr, |
| 785 &damage_rect_); |
744 DCHECK(damage_rect_.IsEmpty()); | 786 DCHECK(damage_rect_.IsEmpty()); |
745 } | 787 } |
746 | 788 |
747 TEST_F(SingleOverlayOnTopTest, NoCandidates) { | 789 TEST_F(SingleOverlayOnTopTest, NoCandidates) { |
748 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 790 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
749 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 791 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
750 pass->shared_quad_state_list.back(), pass.get()); | 792 pass->shared_quad_state_list.back(), pass.get()); |
751 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 793 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
752 pass->shared_quad_state_list.back(), pass.get()); | 794 pass->shared_quad_state_list.back(), pass.get()); |
753 | 795 |
754 RenderPassList pass_list; | 796 RenderPassList pass_list; |
755 pass_list.push_back(pass.Pass()); | 797 pass_list.push_back(pass.Pass()); |
756 | 798 |
757 RenderPassList original_pass_list; | 799 RenderPassList original_pass_list; |
758 RenderPass::CopyAll(pass_list, &original_pass_list); | 800 RenderPass::CopyAll(pass_list, &original_pass_list); |
759 | 801 |
760 OverlayCandidateList candidate_list; | 802 OverlayCandidateList candidate_list; |
761 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 803 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
762 &candidate_list, &damage_rect_); | 804 &candidate_list, nullptr, |
| 805 &damage_rect_); |
763 EXPECT_EQ(0U, candidate_list.size()); | 806 EXPECT_EQ(0U, candidate_list.size()); |
764 // There should be nothing new here. | 807 // There should be nothing new here. |
765 CompareRenderPassLists(pass_list, original_pass_list); | 808 CompareRenderPassLists(pass_list, original_pass_list); |
766 } | 809 } |
767 | 810 |
768 TEST_F(SingleOverlayOnTopTest, OccludedCandidates) { | 811 TEST_F(SingleOverlayOnTopTest, OccludedCandidates) { |
769 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 812 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
770 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 813 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
771 pass->shared_quad_state_list.back(), pass.get()); | 814 pass->shared_quad_state_list.back(), pass.get()); |
772 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 815 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
773 pass->shared_quad_state_list.back(), pass.get()); | 816 pass->shared_quad_state_list.back(), pass.get()); |
774 | 817 |
775 CreateFullscreenCandidateQuad(resource_provider_.get(), | 818 CreateFullscreenCandidateQuad(resource_provider_.get(), |
776 pass->shared_quad_state_list.back(), | 819 pass->shared_quad_state_list.back(), |
777 pass.get()); | 820 pass.get()); |
778 | 821 |
779 RenderPassList pass_list; | 822 RenderPassList pass_list; |
780 pass_list.push_back(pass.Pass()); | 823 pass_list.push_back(pass.Pass()); |
781 | 824 |
782 RenderPassList original_pass_list; | 825 RenderPassList original_pass_list; |
783 RenderPass::CopyAll(pass_list, &original_pass_list); | 826 RenderPass::CopyAll(pass_list, &original_pass_list); |
784 | 827 |
785 OverlayCandidateList candidate_list; | 828 OverlayCandidateList candidate_list; |
786 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 829 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
787 &candidate_list, &damage_rect_); | 830 &candidate_list, nullptr, |
| 831 &damage_rect_); |
788 EXPECT_EQ(0U, candidate_list.size()); | 832 EXPECT_EQ(0U, candidate_list.size()); |
789 // There should be nothing new here. | 833 // There should be nothing new here. |
790 CompareRenderPassLists(pass_list, original_pass_list); | 834 CompareRenderPassLists(pass_list, original_pass_list); |
791 } | 835 } |
792 | 836 |
793 // Test with multiple render passes. | 837 // Test with multiple render passes. |
794 TEST_F(SingleOverlayOnTopTest, MultipleRenderPasses) { | 838 TEST_F(SingleOverlayOnTopTest, MultipleRenderPasses) { |
795 RenderPassList pass_list; | 839 RenderPassList pass_list; |
796 pass_list.push_back(CreateRenderPass()); | 840 pass_list.push_back(CreateRenderPass()); |
797 | 841 |
798 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 842 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
799 CreateFullscreenCandidateQuad(resource_provider_.get(), | 843 CreateFullscreenCandidateQuad(resource_provider_.get(), |
800 pass->shared_quad_state_list.back(), | 844 pass->shared_quad_state_list.back(), |
801 pass.get()); | 845 pass.get()); |
802 | 846 |
803 // Add something behind it. | 847 // Add something behind it. |
804 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 848 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
805 pass->shared_quad_state_list.back(), pass.get()); | 849 pass->shared_quad_state_list.back(), pass.get()); |
806 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 850 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
807 pass->shared_quad_state_list.back(), pass.get()); | 851 pass->shared_quad_state_list.back(), pass.get()); |
808 | 852 |
809 pass_list.push_back(pass.Pass()); | 853 pass_list.push_back(pass.Pass()); |
810 | 854 |
811 RenderPassList original_pass_list; | 855 RenderPassList original_pass_list; |
812 RenderPass::CopyAll(pass_list, &original_pass_list); | 856 RenderPass::CopyAll(pass_list, &original_pass_list); |
813 | 857 |
814 // Check for potential candidates. | 858 // Check for potential candidates. |
815 OverlayCandidateList candidate_list; | 859 OverlayCandidateList candidate_list; |
816 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 860 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
817 &candidate_list, &damage_rect_); | 861 &candidate_list, nullptr, |
| 862 &damage_rect_); |
818 EXPECT_EQ(1U, candidate_list.size()); | 863 EXPECT_EQ(1U, candidate_list.size()); |
819 | 864 |
820 // This should be the same. | 865 // This should be the same. |
821 ASSERT_EQ(2U, pass_list.size()); | 866 ASSERT_EQ(2U, pass_list.size()); |
822 } | 867 } |
823 | 868 |
824 TEST_F(SingleOverlayOnTopTest, RejectPremultipliedAlpha) { | 869 TEST_F(SingleOverlayOnTopTest, RejectPremultipliedAlpha) { |
825 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 870 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
826 TextureDrawQuad* quad = | 871 TextureDrawQuad* quad = |
827 CreateFullscreenCandidateQuad(resource_provider_.get(), | 872 CreateFullscreenCandidateQuad(resource_provider_.get(), |
828 pass->shared_quad_state_list.back(), | 873 pass->shared_quad_state_list.back(), |
829 pass.get()); | 874 pass.get()); |
830 quad->premultiplied_alpha = true; | 875 quad->premultiplied_alpha = true; |
831 | 876 |
832 RenderPassList pass_list; | 877 RenderPassList pass_list; |
833 pass_list.push_back(pass.Pass()); | 878 pass_list.push_back(pass.Pass()); |
834 OverlayCandidateList candidate_list; | 879 OverlayCandidateList candidate_list; |
835 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 880 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
836 &candidate_list, &damage_rect_); | 881 &candidate_list, nullptr, |
| 882 &damage_rect_); |
837 EXPECT_EQ(1U, pass_list.size()); | 883 EXPECT_EQ(1U, pass_list.size()); |
838 EXPECT_EQ(0U, candidate_list.size()); | 884 EXPECT_EQ(0U, candidate_list.size()); |
839 } | 885 } |
840 | 886 |
841 TEST_F(SingleOverlayOnTopTest, RejectBlending) { | 887 TEST_F(SingleOverlayOnTopTest, RejectBlending) { |
842 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 888 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
843 TextureDrawQuad* quad = | 889 TextureDrawQuad* quad = |
844 CreateFullscreenCandidateQuad(resource_provider_.get(), | 890 CreateFullscreenCandidateQuad(resource_provider_.get(), |
845 pass->shared_quad_state_list.back(), | 891 pass->shared_quad_state_list.back(), |
846 pass.get()); | 892 pass.get()); |
847 quad->needs_blending = true; | 893 quad->needs_blending = true; |
848 | 894 |
849 RenderPassList pass_list; | 895 RenderPassList pass_list; |
850 pass_list.push_back(pass.Pass()); | 896 pass_list.push_back(pass.Pass()); |
851 OverlayCandidateList candidate_list; | 897 OverlayCandidateList candidate_list; |
852 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 898 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
853 &candidate_list, &damage_rect_); | 899 &candidate_list, nullptr, |
| 900 &damage_rect_); |
854 ASSERT_EQ(1U, pass_list.size()); | 901 ASSERT_EQ(1U, pass_list.size()); |
855 EXPECT_EQ(0U, candidate_list.size()); | 902 EXPECT_EQ(0U, candidate_list.size()); |
856 } | 903 } |
857 | 904 |
858 TEST_F(SingleOverlayOnTopTest, RejectBackgroundColor) { | 905 TEST_F(SingleOverlayOnTopTest, RejectBackgroundColor) { |
859 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 906 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
860 TextureDrawQuad* quad = | 907 TextureDrawQuad* quad = |
861 CreateFullscreenCandidateQuad(resource_provider_.get(), | 908 CreateFullscreenCandidateQuad(resource_provider_.get(), |
862 pass->shared_quad_state_list.back(), | 909 pass->shared_quad_state_list.back(), |
863 pass.get()); | 910 pass.get()); |
864 quad->background_color = SK_ColorBLACK; | 911 quad->background_color = SK_ColorBLACK; |
865 | 912 |
866 RenderPassList pass_list; | 913 RenderPassList pass_list; |
867 pass_list.push_back(pass.Pass()); | 914 pass_list.push_back(pass.Pass()); |
868 OverlayCandidateList candidate_list; | 915 OverlayCandidateList candidate_list; |
869 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 916 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
870 &candidate_list, &damage_rect_); | 917 &candidate_list, nullptr, |
| 918 &damage_rect_); |
871 ASSERT_EQ(1U, pass_list.size()); | 919 ASSERT_EQ(1U, pass_list.size()); |
872 EXPECT_EQ(0U, candidate_list.size()); | 920 EXPECT_EQ(0U, candidate_list.size()); |
873 } | 921 } |
874 | 922 |
875 TEST_F(SingleOverlayOnTopTest, RejectBlendMode) { | 923 TEST_F(SingleOverlayOnTopTest, RejectBlendMode) { |
876 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 924 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
877 CreateFullscreenCandidateQuad(resource_provider_.get(), | 925 CreateFullscreenCandidateQuad(resource_provider_.get(), |
878 pass->shared_quad_state_list.back(), | 926 pass->shared_quad_state_list.back(), |
879 pass.get()); | 927 pass.get()); |
880 pass->shared_quad_state_list.back()->blend_mode = SkXfermode::kScreen_Mode; | 928 pass->shared_quad_state_list.back()->blend_mode = SkXfermode::kScreen_Mode; |
881 | 929 |
882 RenderPassList pass_list; | 930 RenderPassList pass_list; |
883 pass_list.push_back(pass.Pass()); | 931 pass_list.push_back(pass.Pass()); |
884 OverlayCandidateList candidate_list; | 932 OverlayCandidateList candidate_list; |
885 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 933 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
886 &candidate_list, &damage_rect_); | 934 &candidate_list, nullptr, |
| 935 &damage_rect_); |
887 ASSERT_EQ(1U, pass_list.size()); | 936 ASSERT_EQ(1U, pass_list.size()); |
888 EXPECT_EQ(0U, candidate_list.size()); | 937 EXPECT_EQ(0U, candidate_list.size()); |
889 } | 938 } |
890 | 939 |
891 TEST_F(SingleOverlayOnTopTest, RejectOpacity) { | 940 TEST_F(SingleOverlayOnTopTest, RejectOpacity) { |
892 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 941 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
893 CreateFullscreenCandidateQuad(resource_provider_.get(), | 942 CreateFullscreenCandidateQuad(resource_provider_.get(), |
894 pass->shared_quad_state_list.back(), | 943 pass->shared_quad_state_list.back(), |
895 pass.get()); | 944 pass.get()); |
896 pass->shared_quad_state_list.back()->opacity = 0.5f; | 945 pass->shared_quad_state_list.back()->opacity = 0.5f; |
897 | 946 |
898 RenderPassList pass_list; | 947 RenderPassList pass_list; |
899 pass_list.push_back(pass.Pass()); | 948 pass_list.push_back(pass.Pass()); |
900 OverlayCandidateList candidate_list; | 949 OverlayCandidateList candidate_list; |
901 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 950 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
902 &candidate_list, &damage_rect_); | 951 &candidate_list, nullptr, |
| 952 &damage_rect_); |
903 ASSERT_EQ(1U, pass_list.size()); | 953 ASSERT_EQ(1U, pass_list.size()); |
904 EXPECT_EQ(0U, candidate_list.size()); | 954 EXPECT_EQ(0U, candidate_list.size()); |
905 } | 955 } |
906 | 956 |
907 TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) { | 957 TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) { |
908 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 958 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
909 CreateFullscreenCandidateQuad(resource_provider_.get(), | 959 CreateFullscreenCandidateQuad(resource_provider_.get(), |
910 pass->shared_quad_state_list.back(), | 960 pass->shared_quad_state_list.back(), |
911 pass.get()); | 961 pass.get()); |
912 pass->shared_quad_state_list.back() | 962 pass->shared_quad_state_list.back() |
913 ->quad_to_target_transform.RotateAboutXAxis(45.f); | 963 ->quad_to_target_transform.RotateAboutXAxis(45.f); |
914 | 964 |
915 RenderPassList pass_list; | 965 RenderPassList pass_list; |
916 pass_list.push_back(pass.Pass()); | 966 pass_list.push_back(pass.Pass()); |
917 OverlayCandidateList candidate_list; | 967 OverlayCandidateList candidate_list; |
918 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 968 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
919 &candidate_list, &damage_rect_); | 969 &candidate_list, nullptr, |
| 970 &damage_rect_); |
920 ASSERT_EQ(1U, pass_list.size()); | 971 ASSERT_EQ(1U, pass_list.size()); |
921 EXPECT_EQ(0U, candidate_list.size()); | 972 EXPECT_EQ(0U, candidate_list.size()); |
922 } | 973 } |
923 | 974 |
924 TEST_F(SingleOverlayOnTopTest, AllowClipped) { | 975 TEST_F(SingleOverlayOnTopTest, AllowClipped) { |
925 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 976 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
926 CreateFullscreenCandidateQuad(resource_provider_.get(), | 977 CreateFullscreenCandidateQuad(resource_provider_.get(), |
927 pass->shared_quad_state_list.back(), | 978 pass->shared_quad_state_list.back(), |
928 pass.get()); | 979 pass.get()); |
929 pass->shared_quad_state_list.back()->is_clipped = true; | 980 pass->shared_quad_state_list.back()->is_clipped = true; |
930 pass->shared_quad_state_list.back()->clip_rect = kOverlayClipRect; | 981 pass->shared_quad_state_list.back()->clip_rect = kOverlayClipRect; |
931 | 982 |
932 RenderPassList pass_list; | 983 RenderPassList pass_list; |
933 pass_list.push_back(pass.Pass()); | 984 pass_list.push_back(pass.Pass()); |
934 OverlayCandidateList candidate_list; | 985 OverlayCandidateList candidate_list; |
935 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 986 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
936 &candidate_list, &damage_rect_); | 987 &candidate_list, nullptr, |
| 988 &damage_rect_); |
937 ASSERT_EQ(1U, pass_list.size()); | 989 ASSERT_EQ(1U, pass_list.size()); |
938 EXPECT_EQ(1U, candidate_list.size()); | 990 EXPECT_EQ(1U, candidate_list.size()); |
939 } | 991 } |
940 | 992 |
941 TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) { | 993 TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) { |
942 gfx::Rect rect = kOverlayRect; | 994 gfx::Rect rect = kOverlayRect; |
943 rect.set_width(rect.width() / 2); | 995 rect.set_width(rect.width() / 2); |
944 rect.Offset(0, -rect.height()); | 996 rect.Offset(0, -rect.height()); |
945 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 997 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
946 CreateCandidateQuadAt(resource_provider_.get(), | 998 CreateCandidateQuadAt(resource_provider_.get(), |
947 pass->shared_quad_state_list.back(), pass.get(), rect); | 999 pass->shared_quad_state_list.back(), pass.get(), rect); |
948 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, | 1000 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, |
949 -1.0f); | 1001 -1.0f); |
950 | 1002 |
951 RenderPassList pass_list; | 1003 RenderPassList pass_list; |
952 pass_list.push_back(pass.Pass()); | 1004 pass_list.push_back(pass.Pass()); |
953 OverlayCandidateList candidate_list; | 1005 OverlayCandidateList candidate_list; |
954 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1006 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
955 &candidate_list, &damage_rect_); | 1007 &candidate_list, nullptr, |
| 1008 &damage_rect_); |
956 ASSERT_EQ(1U, pass_list.size()); | 1009 ASSERT_EQ(1U, pass_list.size()); |
957 ASSERT_EQ(1U, candidate_list.size()); | 1010 ASSERT_EQ(1U, candidate_list.size()); |
958 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL, | 1011 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL, |
959 candidate_list.back().transform); | 1012 candidate_list.back().transform); |
960 } | 1013 } |
961 | 1014 |
962 TEST_F(SingleOverlayOnTopTest, AllowHorizontalFlip) { | 1015 TEST_F(SingleOverlayOnTopTest, AllowHorizontalFlip) { |
963 gfx::Rect rect = kOverlayRect; | 1016 gfx::Rect rect = kOverlayRect; |
964 rect.set_height(rect.height() / 2); | 1017 rect.set_height(rect.height() / 2); |
965 rect.Offset(-rect.width(), 0); | 1018 rect.Offset(-rect.width(), 0); |
966 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1019 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
967 CreateCandidateQuadAt(resource_provider_.get(), | 1020 CreateCandidateQuadAt(resource_provider_.get(), |
968 pass->shared_quad_state_list.back(), pass.get(), rect); | 1021 pass->shared_quad_state_list.back(), pass.get(), rect); |
969 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(-1.0f, | 1022 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(-1.0f, |
970 2.0f); | 1023 2.0f); |
971 | 1024 |
972 RenderPassList pass_list; | 1025 RenderPassList pass_list; |
973 pass_list.push_back(pass.Pass()); | 1026 pass_list.push_back(pass.Pass()); |
974 OverlayCandidateList candidate_list; | 1027 OverlayCandidateList candidate_list; |
975 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1028 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
976 &candidate_list, &damage_rect_); | 1029 &candidate_list, nullptr, |
| 1030 &damage_rect_); |
977 ASSERT_EQ(1U, pass_list.size()); | 1031 ASSERT_EQ(1U, pass_list.size()); |
978 ASSERT_EQ(1U, candidate_list.size()); | 1032 ASSERT_EQ(1U, candidate_list.size()); |
979 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL, | 1033 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL, |
980 candidate_list.back().transform); | 1034 candidate_list.back().transform); |
981 } | 1035 } |
982 | 1036 |
983 TEST_F(SingleOverlayOnTopTest, AllowPositiveScaleTransform) { | 1037 TEST_F(SingleOverlayOnTopTest, AllowPositiveScaleTransform) { |
984 gfx::Rect rect = kOverlayRect; | 1038 gfx::Rect rect = kOverlayRect; |
985 rect.set_width(rect.width() / 2); | 1039 rect.set_width(rect.width() / 2); |
986 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1040 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
987 CreateCandidateQuadAt(resource_provider_.get(), | 1041 CreateCandidateQuadAt(resource_provider_.get(), |
988 pass->shared_quad_state_list.back(), pass.get(), rect); | 1042 pass->shared_quad_state_list.back(), pass.get(), rect); |
989 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, | 1043 pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, |
990 1.0f); | 1044 1.0f); |
991 | 1045 |
992 RenderPassList pass_list; | 1046 RenderPassList pass_list; |
993 pass_list.push_back(pass.Pass()); | 1047 pass_list.push_back(pass.Pass()); |
994 OverlayCandidateList candidate_list; | 1048 OverlayCandidateList candidate_list; |
995 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1049 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
996 &candidate_list, &damage_rect_); | 1050 &candidate_list, nullptr, |
| 1051 &damage_rect_); |
997 ASSERT_EQ(1U, pass_list.size()); | 1052 ASSERT_EQ(1U, pass_list.size()); |
998 EXPECT_EQ(1U, candidate_list.size()); | 1053 EXPECT_EQ(1U, candidate_list.size()); |
999 } | 1054 } |
1000 | 1055 |
1001 TEST_F(SingleOverlayOnTopTest, Allow90DegreeRotation) { | 1056 TEST_F(SingleOverlayOnTopTest, Allow90DegreeRotation) { |
1002 gfx::Rect rect = kOverlayRect; | 1057 gfx::Rect rect = kOverlayRect; |
1003 rect.Offset(0, -rect.height()); | 1058 rect.Offset(0, -rect.height()); |
1004 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1059 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1005 CreateCandidateQuadAt(resource_provider_.get(), | 1060 CreateCandidateQuadAt(resource_provider_.get(), |
1006 pass->shared_quad_state_list.back(), pass.get(), rect); | 1061 pass->shared_quad_state_list.back(), pass.get(), rect); |
1007 pass->shared_quad_state_list.back() | 1062 pass->shared_quad_state_list.back() |
1008 ->quad_to_target_transform.RotateAboutZAxis(90.f); | 1063 ->quad_to_target_transform.RotateAboutZAxis(90.f); |
1009 | 1064 |
1010 RenderPassList pass_list; | 1065 RenderPassList pass_list; |
1011 pass_list.push_back(pass.Pass()); | 1066 pass_list.push_back(pass.Pass()); |
1012 OverlayCandidateList candidate_list; | 1067 OverlayCandidateList candidate_list; |
1013 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1068 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1014 &candidate_list, &damage_rect_); | 1069 &candidate_list, nullptr, |
| 1070 &damage_rect_); |
1015 ASSERT_EQ(1U, pass_list.size()); | 1071 ASSERT_EQ(1U, pass_list.size()); |
1016 ASSERT_EQ(1U, candidate_list.size()); | 1072 ASSERT_EQ(1U, candidate_list.size()); |
1017 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_90, candidate_list.back().transform); | 1073 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_90, candidate_list.back().transform); |
1018 } | 1074 } |
1019 | 1075 |
1020 TEST_F(SingleOverlayOnTopTest, Allow180DegreeRotation) { | 1076 TEST_F(SingleOverlayOnTopTest, Allow180DegreeRotation) { |
1021 gfx::Rect rect = kOverlayRect; | 1077 gfx::Rect rect = kOverlayRect; |
1022 rect.Offset(-rect.width(), -rect.height()); | 1078 rect.Offset(-rect.width(), -rect.height()); |
1023 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1079 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1024 CreateCandidateQuadAt(resource_provider_.get(), | 1080 CreateCandidateQuadAt(resource_provider_.get(), |
1025 pass->shared_quad_state_list.back(), pass.get(), rect); | 1081 pass->shared_quad_state_list.back(), pass.get(), rect); |
1026 pass->shared_quad_state_list.back() | 1082 pass->shared_quad_state_list.back() |
1027 ->quad_to_target_transform.RotateAboutZAxis(180.f); | 1083 ->quad_to_target_transform.RotateAboutZAxis(180.f); |
1028 | 1084 |
1029 RenderPassList pass_list; | 1085 RenderPassList pass_list; |
1030 pass_list.push_back(pass.Pass()); | 1086 pass_list.push_back(pass.Pass()); |
1031 OverlayCandidateList candidate_list; | 1087 OverlayCandidateList candidate_list; |
1032 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1088 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1033 &candidate_list, &damage_rect_); | 1089 &candidate_list, nullptr, |
| 1090 &damage_rect_); |
1034 ASSERT_EQ(1U, pass_list.size()); | 1091 ASSERT_EQ(1U, pass_list.size()); |
1035 ASSERT_EQ(1U, candidate_list.size()); | 1092 ASSERT_EQ(1U, candidate_list.size()); |
1036 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_180, candidate_list.back().transform); | 1093 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_180, candidate_list.back().transform); |
1037 } | 1094 } |
1038 | 1095 |
1039 TEST_F(SingleOverlayOnTopTest, Allow270DegreeRotation) { | 1096 TEST_F(SingleOverlayOnTopTest, Allow270DegreeRotation) { |
1040 gfx::Rect rect = kOverlayRect; | 1097 gfx::Rect rect = kOverlayRect; |
1041 rect.Offset(-rect.width(), 0); | 1098 rect.Offset(-rect.width(), 0); |
1042 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1099 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1043 CreateCandidateQuadAt(resource_provider_.get(), | 1100 CreateCandidateQuadAt(resource_provider_.get(), |
1044 pass->shared_quad_state_list.back(), pass.get(), rect); | 1101 pass->shared_quad_state_list.back(), pass.get(), rect); |
1045 pass->shared_quad_state_list.back() | 1102 pass->shared_quad_state_list.back() |
1046 ->quad_to_target_transform.RotateAboutZAxis(270.f); | 1103 ->quad_to_target_transform.RotateAboutZAxis(270.f); |
1047 | 1104 |
1048 RenderPassList pass_list; | 1105 RenderPassList pass_list; |
1049 pass_list.push_back(pass.Pass()); | 1106 pass_list.push_back(pass.Pass()); |
1050 OverlayCandidateList candidate_list; | 1107 OverlayCandidateList candidate_list; |
1051 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1108 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1052 &candidate_list, &damage_rect_); | 1109 &candidate_list, nullptr, |
| 1110 &damage_rect_); |
1053 ASSERT_EQ(1U, pass_list.size()); | 1111 ASSERT_EQ(1U, pass_list.size()); |
1054 ASSERT_EQ(1U, candidate_list.size()); | 1112 ASSERT_EQ(1U, candidate_list.size()); |
1055 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_270, candidate_list.back().transform); | 1113 EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_270, candidate_list.back().transform); |
1056 } | 1114 } |
1057 | 1115 |
1058 TEST_F(SingleOverlayOnTopTest, AllowNotTopIfNotOccluded) { | 1116 TEST_F(SingleOverlayOnTopTest, AllowNotTopIfNotOccluded) { |
1059 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1117 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1060 CreateOpaqueQuadAt(resource_provider_.get(), | 1118 CreateOpaqueQuadAt(resource_provider_.get(), |
1061 pass->shared_quad_state_list.back(), pass.get(), | 1119 pass->shared_quad_state_list.back(), pass.get(), |
1062 kOverlayTopLeftRect); | 1120 kOverlayTopLeftRect); |
1063 CreateCandidateQuadAt(resource_provider_.get(), | 1121 CreateCandidateQuadAt(resource_provider_.get(), |
1064 pass->shared_quad_state_list.back(), | 1122 pass->shared_quad_state_list.back(), |
1065 pass.get(), | 1123 pass.get(), |
1066 kOverlayBottomRightRect); | 1124 kOverlayBottomRightRect); |
1067 | 1125 |
1068 RenderPassList pass_list; | 1126 RenderPassList pass_list; |
1069 pass_list.push_back(pass.Pass()); | 1127 pass_list.push_back(pass.Pass()); |
1070 | 1128 |
1071 RenderPassList original_pass_list; | 1129 RenderPassList original_pass_list; |
1072 RenderPass::CopyAll(pass_list, &original_pass_list); | 1130 RenderPass::CopyAll(pass_list, &original_pass_list); |
1073 | 1131 |
1074 OverlayCandidateList candidate_list; | 1132 OverlayCandidateList candidate_list; |
1075 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1133 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1076 &candidate_list, &damage_rect_); | 1134 &candidate_list, nullptr, |
| 1135 &damage_rect_); |
1077 EXPECT_EQ(1U, pass_list.size()); | 1136 EXPECT_EQ(1U, pass_list.size()); |
1078 EXPECT_EQ(1U, candidate_list.size()); | 1137 EXPECT_EQ(1U, candidate_list.size()); |
1079 } | 1138 } |
1080 | 1139 |
1081 TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) { | 1140 TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) { |
1082 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1141 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1083 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 1142 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
1084 shared_state->opacity = 0.f; | 1143 shared_state->opacity = 0.f; |
1085 CreateSolidColorQuadAt(shared_state, SK_ColorBLACK, pass.get(), | 1144 CreateSolidColorQuadAt(shared_state, SK_ColorBLACK, pass.get(), |
1086 kOverlayBottomRightRect); | 1145 kOverlayBottomRightRect); |
1087 shared_state = pass->CreateAndAppendSharedQuadState(); | 1146 shared_state = pass->CreateAndAppendSharedQuadState(); |
1088 shared_state->opacity = 1.f; | 1147 shared_state->opacity = 1.f; |
1089 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), | 1148 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), |
1090 kOverlayBottomRightRect); | 1149 kOverlayBottomRightRect); |
1091 | 1150 |
1092 RenderPassList pass_list; | 1151 RenderPassList pass_list; |
1093 pass_list.push_back(pass.Pass()); | 1152 pass_list.push_back(pass.Pass()); |
1094 | 1153 |
1095 RenderPassList original_pass_list; | 1154 RenderPassList original_pass_list; |
1096 RenderPass::CopyAll(pass_list, &original_pass_list); | 1155 RenderPass::CopyAll(pass_list, &original_pass_list); |
1097 | 1156 |
1098 OverlayCandidateList candidate_list; | 1157 OverlayCandidateList candidate_list; |
1099 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1158 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1100 &candidate_list, &damage_rect_); | 1159 &candidate_list, nullptr, |
| 1160 &damage_rect_); |
1101 EXPECT_EQ(1U, pass_list.size()); | 1161 EXPECT_EQ(1U, pass_list.size()); |
1102 EXPECT_EQ(1U, candidate_list.size()); | 1162 EXPECT_EQ(1U, candidate_list.size()); |
1103 } | 1163 } |
1104 | 1164 |
1105 TEST_F(SingleOverlayOnTopTest, AllowTransparentColorOnTop) { | 1165 TEST_F(SingleOverlayOnTopTest, AllowTransparentColorOnTop) { |
1106 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1166 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1107 CreateSolidColorQuadAt(pass->shared_quad_state_list.back(), | 1167 CreateSolidColorQuadAt(pass->shared_quad_state_list.back(), |
1108 SK_ColorTRANSPARENT, pass.get(), | 1168 SK_ColorTRANSPARENT, pass.get(), |
1109 kOverlayBottomRightRect); | 1169 kOverlayBottomRightRect); |
1110 CreateCandidateQuadAt(resource_provider_.get(), | 1170 CreateCandidateQuadAt(resource_provider_.get(), |
1111 pass->shared_quad_state_list.back(), pass.get(), | 1171 pass->shared_quad_state_list.back(), pass.get(), |
1112 kOverlayBottomRightRect); | 1172 kOverlayBottomRightRect); |
1113 | 1173 |
1114 RenderPassList pass_list; | 1174 RenderPassList pass_list; |
1115 pass_list.push_back(pass.Pass()); | 1175 pass_list.push_back(pass.Pass()); |
1116 | 1176 |
1117 RenderPassList original_pass_list; | 1177 RenderPassList original_pass_list; |
1118 RenderPass::CopyAll(pass_list, &original_pass_list); | 1178 RenderPass::CopyAll(pass_list, &original_pass_list); |
1119 | 1179 |
1120 OverlayCandidateList candidate_list; | 1180 OverlayCandidateList candidate_list; |
1121 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1181 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1122 &candidate_list, &damage_rect_); | 1182 &candidate_list, nullptr, |
| 1183 &damage_rect_); |
1123 EXPECT_EQ(1U, pass_list.size()); | 1184 EXPECT_EQ(1U, pass_list.size()); |
1124 EXPECT_EQ(1U, candidate_list.size()); | 1185 EXPECT_EQ(1U, candidate_list.size()); |
1125 } | 1186 } |
1126 | 1187 |
1127 TEST_F(SingleOverlayOnTopTest, RejectOpaqueColorOnTop) { | 1188 TEST_F(SingleOverlayOnTopTest, RejectOpaqueColorOnTop) { |
1128 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1189 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1129 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 1190 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
1130 shared_state->opacity = 0.5f; | 1191 shared_state->opacity = 0.5f; |
1131 CreateSolidColorQuadAt(shared_state, SK_ColorBLACK, pass.get(), | 1192 CreateSolidColorQuadAt(shared_state, SK_ColorBLACK, pass.get(), |
1132 kOverlayBottomRightRect); | 1193 kOverlayBottomRightRect); |
1133 shared_state = pass->CreateAndAppendSharedQuadState(); | 1194 shared_state = pass->CreateAndAppendSharedQuadState(); |
1134 shared_state->opacity = 1.f; | 1195 shared_state->opacity = 1.f; |
1135 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), | 1196 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), |
1136 kOverlayBottomRightRect); | 1197 kOverlayBottomRightRect); |
1137 | 1198 |
1138 RenderPassList pass_list; | 1199 RenderPassList pass_list; |
1139 pass_list.push_back(pass.Pass()); | 1200 pass_list.push_back(pass.Pass()); |
1140 | 1201 |
1141 RenderPassList original_pass_list; | 1202 RenderPassList original_pass_list; |
1142 RenderPass::CopyAll(pass_list, &original_pass_list); | 1203 RenderPass::CopyAll(pass_list, &original_pass_list); |
1143 | 1204 |
1144 OverlayCandidateList candidate_list; | 1205 OverlayCandidateList candidate_list; |
1145 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1206 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1146 &candidate_list, &damage_rect_); | 1207 &candidate_list, nullptr, |
| 1208 &damage_rect_); |
1147 EXPECT_EQ(1U, pass_list.size()); | 1209 EXPECT_EQ(1U, pass_list.size()); |
1148 EXPECT_EQ(0U, candidate_list.size()); | 1210 EXPECT_EQ(0U, candidate_list.size()); |
1149 } | 1211 } |
1150 | 1212 |
1151 TEST_F(SingleOverlayOnTopTest, RejectTransparentColorOnTopWithoutBlending) { | 1213 TEST_F(SingleOverlayOnTopTest, RejectTransparentColorOnTopWithoutBlending) { |
1152 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1214 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1153 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 1215 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
1154 CreateSolidColorQuadAt(shared_state, SK_ColorTRANSPARENT, pass.get(), | 1216 CreateSolidColorQuadAt(shared_state, SK_ColorTRANSPARENT, pass.get(), |
1155 kOverlayBottomRightRect)->opaque_rect = | 1217 kOverlayBottomRightRect)->opaque_rect = |
1156 kOverlayBottomRightRect; | 1218 kOverlayBottomRightRect; |
1157 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), | 1219 CreateCandidateQuadAt(resource_provider_.get(), shared_state, pass.get(), |
1158 kOverlayBottomRightRect); | 1220 kOverlayBottomRightRect); |
1159 | 1221 |
1160 RenderPassList pass_list; | 1222 RenderPassList pass_list; |
1161 pass_list.push_back(pass.Pass()); | 1223 pass_list.push_back(pass.Pass()); |
1162 | 1224 |
1163 RenderPassList original_pass_list; | 1225 RenderPassList original_pass_list; |
1164 RenderPass::CopyAll(pass_list, &original_pass_list); | 1226 RenderPass::CopyAll(pass_list, &original_pass_list); |
1165 | 1227 |
1166 OverlayCandidateList candidate_list; | 1228 OverlayCandidateList candidate_list; |
1167 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1229 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1168 &candidate_list, &damage_rect_); | 1230 &candidate_list, nullptr, |
| 1231 &damage_rect_); |
1169 EXPECT_EQ(1U, pass_list.size()); | 1232 EXPECT_EQ(1U, pass_list.size()); |
1170 EXPECT_EQ(0U, candidate_list.size()); | 1233 EXPECT_EQ(0U, candidate_list.size()); |
1171 } | 1234 } |
1172 | 1235 |
1173 TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) { | 1236 TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) { |
1174 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1237 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1175 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), | 1238 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), |
1176 pass->shared_quad_state_list.back(), | 1239 pass->shared_quad_state_list.back(), |
1177 pass.get(), kSwapTransform); | 1240 pass.get(), kSwapTransform); |
1178 | 1241 |
1179 RenderPassList pass_list; | 1242 RenderPassList pass_list; |
1180 pass_list.push_back(pass.Pass()); | 1243 pass_list.push_back(pass.Pass()); |
1181 OverlayCandidateList candidate_list; | 1244 OverlayCandidateList candidate_list; |
1182 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1245 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1183 &candidate_list, &damage_rect_); | 1246 &candidate_list, nullptr, |
| 1247 &damage_rect_); |
1184 ASSERT_EQ(1U, pass_list.size()); | 1248 ASSERT_EQ(1U, pass_list.size()); |
1185 EXPECT_EQ(0U, candidate_list.size()); | 1249 EXPECT_EQ(0U, candidate_list.size()); |
1186 } | 1250 } |
1187 | 1251 |
1188 TEST_F(SingleOverlayOnTopTest, AllowVideoXMirrorTransform) { | 1252 TEST_F(SingleOverlayOnTopTest, AllowVideoXMirrorTransform) { |
1189 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1253 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1190 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), | 1254 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), |
1191 pass->shared_quad_state_list.back(), | 1255 pass->shared_quad_state_list.back(), |
1192 pass.get(), kXMirrorTransform); | 1256 pass.get(), kXMirrorTransform); |
1193 | 1257 |
1194 RenderPassList pass_list; | 1258 RenderPassList pass_list; |
1195 pass_list.push_back(pass.Pass()); | 1259 pass_list.push_back(pass.Pass()); |
1196 OverlayCandidateList candidate_list; | 1260 OverlayCandidateList candidate_list; |
1197 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1261 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1198 &candidate_list, &damage_rect_); | 1262 &candidate_list, nullptr, |
| 1263 &damage_rect_); |
1199 ASSERT_EQ(1U, pass_list.size()); | 1264 ASSERT_EQ(1U, pass_list.size()); |
1200 EXPECT_EQ(1U, candidate_list.size()); | 1265 EXPECT_EQ(1U, candidate_list.size()); |
1201 } | 1266 } |
1202 | 1267 |
1203 TEST_F(SingleOverlayOnTopTest, AllowVideoBothMirrorTransform) { | 1268 TEST_F(SingleOverlayOnTopTest, AllowVideoBothMirrorTransform) { |
1204 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1269 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1205 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), | 1270 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), |
1206 pass->shared_quad_state_list.back(), | 1271 pass->shared_quad_state_list.back(), |
1207 pass.get(), kBothMirrorTransform); | 1272 pass.get(), kBothMirrorTransform); |
1208 | 1273 |
1209 RenderPassList pass_list; | 1274 RenderPassList pass_list; |
1210 pass_list.push_back(pass.Pass()); | 1275 pass_list.push_back(pass.Pass()); |
1211 OverlayCandidateList candidate_list; | 1276 OverlayCandidateList candidate_list; |
1212 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1277 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1213 &candidate_list, &damage_rect_); | 1278 &candidate_list, nullptr, |
| 1279 &damage_rect_); |
1214 ASSERT_EQ(1U, pass_list.size()); | 1280 ASSERT_EQ(1U, pass_list.size()); |
1215 EXPECT_EQ(1U, candidate_list.size()); | 1281 EXPECT_EQ(1U, candidate_list.size()); |
1216 } | 1282 } |
1217 | 1283 |
1218 TEST_F(SingleOverlayOnTopTest, AllowVideoNormalTransform) { | 1284 TEST_F(SingleOverlayOnTopTest, AllowVideoNormalTransform) { |
1219 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1285 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1220 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), | 1286 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), |
1221 pass->shared_quad_state_list.back(), | 1287 pass->shared_quad_state_list.back(), |
1222 pass.get(), kNormalTransform); | 1288 pass.get(), kNormalTransform); |
1223 | 1289 |
1224 RenderPassList pass_list; | 1290 RenderPassList pass_list; |
1225 pass_list.push_back(pass.Pass()); | 1291 pass_list.push_back(pass.Pass()); |
1226 OverlayCandidateList candidate_list; | 1292 OverlayCandidateList candidate_list; |
1227 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1293 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1228 &candidate_list, &damage_rect_); | 1294 &candidate_list, nullptr, |
| 1295 &damage_rect_); |
1229 ASSERT_EQ(1U, pass_list.size()); | 1296 ASSERT_EQ(1U, pass_list.size()); |
1230 EXPECT_EQ(1U, candidate_list.size()); | 1297 EXPECT_EQ(1U, candidate_list.size()); |
1231 } | 1298 } |
1232 | 1299 |
1233 TEST_F(SingleOverlayOnTopTest, AllowVideoYMirrorTransform) { | 1300 TEST_F(SingleOverlayOnTopTest, AllowVideoYMirrorTransform) { |
1234 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1301 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1235 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), | 1302 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), |
1236 pass->shared_quad_state_list.back(), | 1303 pass->shared_quad_state_list.back(), |
1237 pass.get(), kYMirrorTransform); | 1304 pass.get(), kYMirrorTransform); |
1238 | 1305 |
1239 RenderPassList pass_list; | 1306 RenderPassList pass_list; |
1240 pass_list.push_back(pass.Pass()); | 1307 pass_list.push_back(pass.Pass()); |
1241 OverlayCandidateList candidate_list; | 1308 OverlayCandidateList candidate_list; |
1242 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1309 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1243 &candidate_list, &damage_rect_); | 1310 &candidate_list, nullptr, |
| 1311 &damage_rect_); |
1244 ASSERT_EQ(1U, pass_list.size()); | 1312 ASSERT_EQ(1U, pass_list.size()); |
1245 EXPECT_EQ(1U, candidate_list.size()); | 1313 EXPECT_EQ(1U, candidate_list.size()); |
1246 } | 1314 } |
1247 | 1315 |
1248 TEST_F(UnderlayTest, OverlayLayerUnderMainLayer) { | 1316 TEST_F(UnderlayTest, OverlayLayerUnderMainLayer) { |
1249 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1317 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1250 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 1318 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
1251 pass->shared_quad_state_list.back(), pass.get()); | 1319 pass->shared_quad_state_list.back(), pass.get()); |
1252 CreateCandidateQuadAt(resource_provider_.get(), | 1320 CreateCandidateQuadAt(resource_provider_.get(), |
1253 pass->shared_quad_state_list.back(), pass.get(), | 1321 pass->shared_quad_state_list.back(), pass.get(), |
1254 kOverlayBottomRightRect); | 1322 kOverlayBottomRightRect); |
1255 | 1323 |
1256 RenderPassList pass_list; | 1324 RenderPassList pass_list; |
1257 pass_list.push_back(pass.Pass()); | 1325 pass_list.push_back(pass.Pass()); |
1258 | 1326 |
1259 OverlayCandidateList candidate_list; | 1327 OverlayCandidateList candidate_list; |
1260 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1328 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1261 &candidate_list, &damage_rect_); | 1329 &candidate_list, nullptr, |
| 1330 &damage_rect_); |
1262 EXPECT_EQ(1U, pass_list.size()); | 1331 EXPECT_EQ(1U, pass_list.size()); |
1263 ASSERT_EQ(1U, candidate_list.size()); | 1332 ASSERT_EQ(1U, candidate_list.size()); |
1264 EXPECT_EQ(-1, candidate_list[0].plane_z_order); | 1333 EXPECT_EQ(-1, candidate_list[0].plane_z_order); |
1265 EXPECT_EQ(2U, pass_list[0]->quad_list.size()); | 1334 EXPECT_EQ(2U, pass_list[0]->quad_list.size()); |
1266 // The overlay quad should have changed to a SOLID_COLOR quad. | 1335 // The overlay quad should have changed to a SOLID_COLOR quad. |
1267 EXPECT_EQ(pass_list[0]->quad_list.back()->material, DrawQuad::SOLID_COLOR); | 1336 EXPECT_EQ(pass_list[0]->quad_list.back()->material, DrawQuad::SOLID_COLOR); |
1268 } | 1337 } |
1269 | 1338 |
1270 TEST_F(UnderlayTest, AllowOnTop) { | 1339 TEST_F(UnderlayTest, AllowOnTop) { |
1271 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1340 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1272 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1341 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1273 pass->shared_quad_state_list.back(), | 1342 pass->shared_quad_state_list.back(), |
1274 pass.get()); | 1343 pass.get()); |
1275 pass->CreateAndAppendSharedQuadState()->opacity = 0.5f; | 1344 pass->CreateAndAppendSharedQuadState()->opacity = 0.5f; |
1276 CreateFullscreenOpaqueQuad(resource_provider_.get(), | 1345 CreateFullscreenOpaqueQuad(resource_provider_.get(), |
1277 pass->shared_quad_state_list.back(), pass.get()); | 1346 pass->shared_quad_state_list.back(), pass.get()); |
1278 | 1347 |
1279 RenderPassList pass_list; | 1348 RenderPassList pass_list; |
1280 pass_list.push_back(pass.Pass()); | 1349 pass_list.push_back(pass.Pass()); |
1281 | 1350 |
1282 OverlayCandidateList candidate_list; | 1351 OverlayCandidateList candidate_list; |
1283 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1352 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1284 &candidate_list, &damage_rect_); | 1353 &candidate_list, nullptr, |
| 1354 &damage_rect_); |
1285 EXPECT_EQ(1U, pass_list.size()); | 1355 EXPECT_EQ(1U, pass_list.size()); |
1286 ASSERT_EQ(1U, candidate_list.size()); | 1356 ASSERT_EQ(1U, candidate_list.size()); |
1287 EXPECT_EQ(-1, candidate_list[0].plane_z_order); | 1357 EXPECT_EQ(-1, candidate_list[0].plane_z_order); |
1288 // The overlay quad should have changed to a SOLID_COLOR quad. | 1358 // The overlay quad should have changed to a SOLID_COLOR quad. |
1289 EXPECT_EQ(pass_list[0]->quad_list.front()->material, DrawQuad::SOLID_COLOR); | 1359 EXPECT_EQ(pass_list[0]->quad_list.front()->material, DrawQuad::SOLID_COLOR); |
1290 } | 1360 } |
1291 | 1361 |
1292 TEST_F(UnderlayTest, DamageRect) { | 1362 TEST_F(UnderlayTest, DamageRect) { |
1293 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1363 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1294 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1364 CreateFullscreenCandidateQuad(resource_provider_.get(), |
(...skipping 16 matching lines...) Expand all Loading... |
1311 | 1381 |
1312 // Primary plane. | 1382 // Primary plane. |
1313 OverlayCandidate output_surface_plane; | 1383 OverlayCandidate output_surface_plane; |
1314 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); | 1384 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); |
1315 output_surface_plane.quad_rect_in_target_space = kOverlayRect; | 1385 output_surface_plane.quad_rect_in_target_space = kOverlayRect; |
1316 output_surface_plane.use_output_surface_for_resource = true; | 1386 output_surface_plane.use_output_surface_for_resource = true; |
1317 output_surface_plane.overlay_handled = true; | 1387 output_surface_plane.overlay_handled = true; |
1318 candidate_list.push_back(output_surface_plane); | 1388 candidate_list.push_back(output_surface_plane); |
1319 | 1389 |
1320 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, | 1390 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1321 &candidate_list, &damage_rect_); | 1391 &candidate_list, nullptr, |
| 1392 &damage_rect_); |
1322 DCHECK(!damage_rect_.IsEmpty()); | 1393 DCHECK(!damage_rect_.IsEmpty()); |
1323 } | 1394 } |
1324 | 1395 |
1325 OverlayCandidateList BackbufferOverlayList(const RenderPass* root_render_pass) { | 1396 OverlayCandidateList BackbufferOverlayList(const RenderPass* root_render_pass) { |
1326 OverlayCandidateList list; | 1397 OverlayCandidateList list; |
1327 OverlayCandidate output_surface_plane; | 1398 OverlayCandidate output_surface_plane; |
1328 output_surface_plane.display_rect = gfx::RectF(root_render_pass->output_rect); | 1399 output_surface_plane.display_rect = gfx::RectF(root_render_pass->output_rect); |
1329 output_surface_plane.quad_rect_in_target_space = | 1400 output_surface_plane.quad_rect_in_target_space = |
1330 root_render_pass->output_rect; | 1401 root_render_pass->output_rect; |
1331 output_surface_plane.use_output_surface_for_resource = true; | 1402 output_surface_plane.use_output_surface_for_resource = true; |
1332 output_surface_plane.overlay_handled = true; | 1403 output_surface_plane.overlay_handled = true; |
1333 list.push_back(output_surface_plane); | 1404 list.push_back(output_surface_plane); |
1334 return list; | 1405 return list; |
1335 } | 1406 } |
1336 | 1407 |
1337 TEST_F(CALayerOverlayTest, AllowNonAxisAlignedTransform) { | 1408 TEST_F(CALayerOverlayTest, AllowNonAxisAlignedTransform) { |
1338 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1409 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1339 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1410 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1340 pass->shared_quad_state_list.back(), | 1411 pass->shared_quad_state_list.back(), |
1341 pass.get()); | 1412 pass.get()); |
1342 pass->shared_quad_state_list.back() | 1413 pass->shared_quad_state_list.back() |
1343 ->quad_to_target_transform.RotateAboutZAxis(45.f); | 1414 ->quad_to_target_transform.RotateAboutZAxis(45.f); |
1344 | 1415 |
| 1416 gfx::Rect damage_rect; |
1345 RenderPassList pass_list; | 1417 RenderPassList pass_list; |
1346 pass_list.push_back(pass.Pass()); | 1418 pass_list.push_back(pass.Pass()); |
1347 CALayerOverlayList ca_layer_list; | 1419 CALayerOverlayList ca_layer_list; |
1348 OverlayCandidateList overlay_list( | 1420 OverlayCandidateList overlay_list( |
1349 BackbufferOverlayList(pass_list.back().get())); | 1421 BackbufferOverlayList(pass_list.back().get())); |
1350 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1422 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1351 &ca_layer_list, &overlay_list); | 1423 &overlay_list, &ca_layer_list, |
| 1424 &damage_rect); |
1352 ASSERT_EQ(1U, pass_list.size()); | 1425 ASSERT_EQ(1U, pass_list.size()); |
1353 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); | 1426 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); |
1354 EXPECT_EQ(0U, overlay_list.size()); | 1427 EXPECT_EQ(0U, overlay_list.size()); |
1355 EXPECT_EQ(1U, ca_layer_list.size()); | 1428 EXPECT_EQ(1U, ca_layer_list.size()); |
1356 } | 1429 } |
1357 | 1430 |
1358 TEST_F(CALayerOverlayTest, Disallow3DTransform) { | 1431 TEST_F(CALayerOverlayTest, Disallow3DTransform) { |
1359 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1432 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1360 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1433 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1361 pass->shared_quad_state_list.back(), | 1434 pass->shared_quad_state_list.back(), |
1362 pass.get()); | 1435 pass.get()); |
1363 pass->shared_quad_state_list.back() | 1436 pass->shared_quad_state_list.back() |
1364 ->quad_to_target_transform.RotateAboutXAxis(45.f); | 1437 ->quad_to_target_transform.RotateAboutXAxis(45.f); |
1365 | 1438 |
| 1439 gfx::Rect damage_rect; |
1366 RenderPassList pass_list; | 1440 RenderPassList pass_list; |
1367 pass_list.push_back(pass.Pass()); | 1441 pass_list.push_back(pass.Pass()); |
1368 CALayerOverlayList ca_layer_list; | 1442 CALayerOverlayList ca_layer_list; |
1369 OverlayCandidateList overlay_list( | 1443 OverlayCandidateList overlay_list( |
1370 BackbufferOverlayList(pass_list.back().get())); | 1444 BackbufferOverlayList(pass_list.back().get())); |
1371 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1445 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1372 &ca_layer_list, &overlay_list); | 1446 &overlay_list, &ca_layer_list, |
| 1447 &damage_rect); |
1373 ASSERT_EQ(1U, pass_list.size()); | 1448 ASSERT_EQ(1U, pass_list.size()); |
1374 EXPECT_EQ(1U, pass_list.back()->quad_list.size()); | 1449 EXPECT_EQ(1U, pass_list.back()->quad_list.size()); |
1375 EXPECT_EQ(1U, overlay_list.size()); | 1450 EXPECT_EQ(1U, overlay_list.size()); |
1376 EXPECT_EQ(0U, ca_layer_list.size()); | 1451 EXPECT_EQ(0U, ca_layer_list.size()); |
1377 } | 1452 } |
1378 | 1453 |
1379 TEST_F(CALayerOverlayTest, AllowContainingClip) { | 1454 TEST_F(CALayerOverlayTest, AllowContainingClip) { |
1380 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1455 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1381 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1456 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1382 pass->shared_quad_state_list.back(), | 1457 pass->shared_quad_state_list.back(), |
1383 pass.get()); | 1458 pass.get()); |
1384 pass->shared_quad_state_list.back()->is_clipped = true; | 1459 pass->shared_quad_state_list.back()->is_clipped = true; |
1385 pass->shared_quad_state_list.back()->clip_rect = kOverlayRect; | 1460 pass->shared_quad_state_list.back()->clip_rect = kOverlayRect; |
1386 | 1461 |
| 1462 gfx::Rect damage_rect; |
1387 RenderPassList pass_list; | 1463 RenderPassList pass_list; |
1388 pass_list.push_back(pass.Pass()); | 1464 pass_list.push_back(pass.Pass()); |
1389 CALayerOverlayList ca_layer_list; | 1465 CALayerOverlayList ca_layer_list; |
1390 OverlayCandidateList overlay_list( | 1466 OverlayCandidateList overlay_list( |
1391 BackbufferOverlayList(pass_list.back().get())); | 1467 BackbufferOverlayList(pass_list.back().get())); |
1392 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1468 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1393 &ca_layer_list, &overlay_list); | 1469 &overlay_list, &ca_layer_list, |
| 1470 &damage_rect); |
1394 ASSERT_EQ(1U, pass_list.size()); | 1471 ASSERT_EQ(1U, pass_list.size()); |
1395 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); | 1472 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); |
1396 EXPECT_EQ(0U, overlay_list.size()); | 1473 EXPECT_EQ(0U, overlay_list.size()); |
1397 EXPECT_EQ(1U, ca_layer_list.size()); | 1474 EXPECT_EQ(1U, ca_layer_list.size()); |
1398 } | 1475 } |
1399 | 1476 |
1400 TEST_F(CALayerOverlayTest, SkipDisjointClip) { | 1477 TEST_F(CALayerOverlayTest, SkipDisjointClip) { |
1401 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1478 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1402 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1479 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1403 pass->shared_quad_state_list.back(), | 1480 pass->shared_quad_state_list.back(), |
1404 pass.get()); | 1481 pass.get()); |
1405 pass->shared_quad_state_list.back()->is_clipped = true; | 1482 pass->shared_quad_state_list.back()->is_clipped = true; |
1406 pass->shared_quad_state_list.back()->clip_rect = | 1483 pass->shared_quad_state_list.back()->clip_rect = |
1407 gfx::Rect(128, 128, 128, 128); | 1484 gfx::Rect(128, 128, 128, 128); |
1408 | 1485 |
| 1486 gfx::Rect damage_rect; |
1409 RenderPassList pass_list; | 1487 RenderPassList pass_list; |
1410 pass_list.push_back(pass.Pass()); | 1488 pass_list.push_back(pass.Pass()); |
1411 CALayerOverlayList ca_layer_list; | 1489 CALayerOverlayList ca_layer_list; |
1412 OverlayCandidateList overlay_list( | 1490 OverlayCandidateList overlay_list( |
1413 BackbufferOverlayList(pass_list.back().get())); | 1491 BackbufferOverlayList(pass_list.back().get())); |
1414 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1492 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1415 &ca_layer_list, &overlay_list); | 1493 &overlay_list, &ca_layer_list, |
| 1494 &damage_rect); |
1416 ASSERT_EQ(1U, pass_list.size()); | 1495 ASSERT_EQ(1U, pass_list.size()); |
1417 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); | 1496 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); |
1418 EXPECT_EQ(0U, overlay_list.size()); | 1497 EXPECT_EQ(0U, overlay_list.size()); |
1419 EXPECT_EQ(0U, ca_layer_list.size()); | 1498 EXPECT_EQ(0U, ca_layer_list.size()); |
1420 } | 1499 } |
1421 | 1500 |
1422 TEST_F(CALayerOverlayTest, DisallowNontrivialClip) { | 1501 TEST_F(CALayerOverlayTest, DisallowNontrivialClip) { |
1423 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1502 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1424 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1503 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1425 pass->shared_quad_state_list.back(), | 1504 pass->shared_quad_state_list.back(), |
1426 pass.get()); | 1505 pass.get()); |
1427 pass->shared_quad_state_list.back()->is_clipped = true; | 1506 pass->shared_quad_state_list.back()->is_clipped = true; |
1428 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(64, 64, 128, 128); | 1507 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(64, 64, 128, 128); |
1429 | 1508 |
| 1509 gfx::Rect damage_rect; |
1430 RenderPassList pass_list; | 1510 RenderPassList pass_list; |
1431 pass_list.push_back(pass.Pass()); | 1511 pass_list.push_back(pass.Pass()); |
1432 CALayerOverlayList ca_layer_list; | 1512 CALayerOverlayList ca_layer_list; |
1433 OverlayCandidateList overlay_list( | 1513 OverlayCandidateList overlay_list( |
1434 BackbufferOverlayList(pass_list.back().get())); | 1514 BackbufferOverlayList(pass_list.back().get())); |
1435 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1515 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1436 &ca_layer_list, &overlay_list); | 1516 &overlay_list, &ca_layer_list, |
| 1517 &damage_rect); |
1437 | 1518 |
1438 ASSERT_EQ(1U, pass_list.size()); | 1519 ASSERT_EQ(1U, pass_list.size()); |
1439 EXPECT_EQ(1U, pass_list.back()->quad_list.size()); | 1520 EXPECT_EQ(1U, pass_list.back()->quad_list.size()); |
1440 EXPECT_EQ(1U, overlay_list.size()); | 1521 EXPECT_EQ(1U, overlay_list.size()); |
1441 EXPECT_EQ(0U, ca_layer_list.size()); | 1522 EXPECT_EQ(0U, ca_layer_list.size()); |
1442 } | 1523 } |
1443 | 1524 |
1444 TEST_F(CALayerOverlayTest, SkipTransparent) { | 1525 TEST_F(CALayerOverlayTest, SkipTransparent) { |
1445 scoped_ptr<RenderPass> pass = CreateRenderPass(); | 1526 scoped_ptr<RenderPass> pass = CreateRenderPass(); |
1446 CreateFullscreenCandidateQuad(resource_provider_.get(), | 1527 CreateFullscreenCandidateQuad(resource_provider_.get(), |
1447 pass->shared_quad_state_list.back(), | 1528 pass->shared_quad_state_list.back(), |
1448 pass.get()); | 1529 pass.get()); |
1449 pass->shared_quad_state_list.back()->opacity = 0; | 1530 pass->shared_quad_state_list.back()->opacity = 0; |
1450 | 1531 |
| 1532 gfx::Rect damage_rect; |
1451 RenderPassList pass_list; | 1533 RenderPassList pass_list; |
1452 pass_list.push_back(pass.Pass()); | 1534 pass_list.push_back(pass.Pass()); |
1453 CALayerOverlayList ca_layer_list; | 1535 CALayerOverlayList ca_layer_list; |
1454 OverlayCandidateList overlay_list( | 1536 OverlayCandidateList overlay_list( |
1455 BackbufferOverlayList(pass_list.back().get())); | 1537 BackbufferOverlayList(pass_list.back().get())); |
1456 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list, | 1538 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, |
1457 &ca_layer_list, &overlay_list); | 1539 &overlay_list, &ca_layer_list, |
| 1540 &damage_rect); |
1458 ASSERT_EQ(1U, pass_list.size()); | 1541 ASSERT_EQ(1U, pass_list.size()); |
1459 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); | 1542 EXPECT_EQ(0U, pass_list.back()->quad_list.size()); |
1460 EXPECT_EQ(0U, overlay_list.size()); | 1543 EXPECT_EQ(0U, overlay_list.size()); |
1461 EXPECT_EQ(0U, ca_layer_list.size()); | 1544 EXPECT_EQ(0U, ca_layer_list.size()); |
1462 } | 1545 } |
1463 | 1546 |
1464 class OverlayInfoRendererGL : public GLRenderer { | 1547 class OverlayInfoRendererGL : public GLRenderer { |
1465 public: | 1548 public: |
1466 OverlayInfoRendererGL(RendererClient* client, | 1549 OverlayInfoRendererGL(RendererClient* client, |
1467 const RendererSettings* settings, | 1550 const RendererSettings* settings, |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1807 renderer_->BeginDrawingFrame(&frame_no_overlays); | 1890 renderer_->BeginDrawingFrame(&frame_no_overlays); |
1808 renderer_->FinishDrawingFrame(&frame_no_overlays); | 1891 renderer_->FinishDrawingFrame(&frame_no_overlays); |
1809 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 1892 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
1810 SwapBuffers(); | 1893 SwapBuffers(); |
1811 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 1894 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
1812 Mock::VerifyAndClearExpectations(&scheduler_); | 1895 Mock::VerifyAndClearExpectations(&scheduler_); |
1813 } | 1896 } |
1814 | 1897 |
1815 } // namespace | 1898 } // namespace |
1816 } // namespace cc | 1899 } // namespace cc |
OLD | NEW |