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/scoped_ptr_vector.h" | 5 #include "cc/base/scoped_ptr_vector.h" |
6 #include "cc/output/gl_renderer.h" | 6 #include "cc/output/gl_renderer.h" |
7 #include "cc/output/output_surface.h" | 7 #include "cc/output/output_surface.h" |
8 #include "cc/output/output_surface_client.h" | 8 #include "cc/output/output_surface_client.h" |
9 #include "cc/output/overlay_candidate_validator.h" | 9 #include "cc/output/overlay_candidate_validator.h" |
10 #include "cc/output/overlay_processor.h" | 10 #include "cc/output/overlay_processor.h" |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 OutputSurface* output_surface, | 519 OutputSurface* output_surface, |
520 ResourceProvider* resource_provider) | 520 ResourceProvider* resource_provider) |
521 : GLRenderer(client, | 521 : GLRenderer(client, |
522 settings, | 522 settings, |
523 output_surface, | 523 output_surface, |
524 resource_provider, | 524 resource_provider, |
525 NULL, | 525 NULL, |
526 0), | 526 0), |
527 expect_overlays_(false) {} | 527 expect_overlays_(false) {} |
528 | 528 |
529 MOCK_METHOD2(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad)); | 529 MOCK_METHOD3(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad, |
| 530 const gfx::QuadF* draw_region)); |
530 | 531 |
531 virtual void FinishDrawingFrame(DrawingFrame* frame) OVERRIDE { | 532 virtual void FinishDrawingFrame(DrawingFrame* frame) OVERRIDE { |
532 GLRenderer::FinishDrawingFrame(frame); | 533 GLRenderer::FinishDrawingFrame(frame); |
533 | 534 |
534 if (!expect_overlays_) { | 535 if (!expect_overlays_) { |
535 EXPECT_EQ(0U, frame->overlay_list.size()); | 536 EXPECT_EQ(0U, frame->overlay_list.size()); |
536 return; | 537 return; |
537 } | 538 } |
538 | 539 |
539 ASSERT_EQ(2U, frame->overlay_list.size()); | 540 ASSERT_EQ(2U, frame->overlay_list.size()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 pass.get()); | 618 pass.get()); |
618 CreateFullscreenCheckeredQuad(resource_provider_.get(), | 619 CreateFullscreenCheckeredQuad(resource_provider_.get(), |
619 pass->shared_quad_state_list.back(), | 620 pass->shared_quad_state_list.back(), |
620 pass.get()); | 621 pass.get()); |
621 | 622 |
622 RenderPassList pass_list; | 623 RenderPassList pass_list; |
623 pass_list.push_back(pass.Pass()); | 624 pass_list.push_back(pass.Pass()); |
624 | 625 |
625 // Candidate pass was taken out and extra skipped pass added, | 626 // Candidate pass was taken out and extra skipped pass added, |
626 // so only draw 2 quads. | 627 // so only draw 2 quads. |
627 EXPECT_CALL(*renderer_, DoDrawQuad(_, _)).Times(2); | 628 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2); |
628 EXPECT_CALL(scheduler_, | 629 EXPECT_CALL(scheduler_, |
629 Schedule(1, | 630 Schedule(1, |
630 gfx::OVERLAY_TRANSFORM_NONE, | 631 gfx::OVERLAY_TRANSFORM_NONE, |
631 _, | 632 _, |
632 kOverlayRect, | 633 kOverlayRect, |
633 BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1); | 634 BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1); |
634 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); | 635 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); |
635 | 636 |
636 SwapBuffers(); | 637 SwapBuffers(); |
637 | 638 |
(...skipping 17 matching lines...) Expand all Loading... |
655 pass.get()); | 656 pass.get()); |
656 | 657 |
657 CreateFullscreenCandidateQuad(resource_provider_.get(), | 658 CreateFullscreenCandidateQuad(resource_provider_.get(), |
658 pass->shared_quad_state_list.back(), | 659 pass->shared_quad_state_list.back(), |
659 pass.get()); | 660 pass.get()); |
660 | 661 |
661 RenderPassList pass_list; | 662 RenderPassList pass_list; |
662 pass_list.push_back(pass.Pass()); | 663 pass_list.push_back(pass.Pass()); |
663 | 664 |
664 // 3 quads in the pass, all should draw. | 665 // 3 quads in the pass, all should draw. |
665 EXPECT_CALL(*renderer_, DoDrawQuad(_, _)).Times(3); | 666 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3); |
666 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); | 667 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); |
667 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); | 668 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); |
668 | 669 |
669 SwapBuffers(); | 670 SwapBuffers(); |
670 | 671 |
671 Mock::VerifyAndClearExpectations(renderer_.get()); | 672 Mock::VerifyAndClearExpectations(renderer_.get()); |
672 Mock::VerifyAndClearExpectations(&scheduler_); | 673 Mock::VerifyAndClearExpectations(&scheduler_); |
673 } | 674 } |
674 | 675 |
675 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) { | 676 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) { |
(...skipping 12 matching lines...) Expand all Loading... |
688 pass->shared_quad_state_list.back(), | 689 pass->shared_quad_state_list.back(), |
689 pass.get()); | 690 pass.get()); |
690 CreateFullscreenCheckeredQuad(resource_provider_.get(), | 691 CreateFullscreenCheckeredQuad(resource_provider_.get(), |
691 pass->shared_quad_state_list.back(), | 692 pass->shared_quad_state_list.back(), |
692 pass.get()); | 693 pass.get()); |
693 | 694 |
694 RenderPassList pass_list; | 695 RenderPassList pass_list; |
695 pass_list.push_back(pass.Pass()); | 696 pass_list.push_back(pass.Pass()); |
696 | 697 |
697 // Should see no overlays. | 698 // Should see no overlays. |
698 EXPECT_CALL(*renderer_, DoDrawQuad(_, _)).Times(3); | 699 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3); |
699 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); | 700 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); |
700 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); | 701 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); |
701 | 702 |
702 SwapBuffers(); | 703 SwapBuffers(); |
703 | 704 |
704 Mock::VerifyAndClearExpectations(renderer_.get()); | 705 Mock::VerifyAndClearExpectations(renderer_.get()); |
705 Mock::VerifyAndClearExpectations(&scheduler_); | 706 Mock::VerifyAndClearExpectations(&scheduler_); |
706 } | 707 } |
707 | 708 |
708 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) { | 709 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 renderer_->set_expect_overlays(false); | 781 renderer_->set_expect_overlays(false); |
781 renderer_->FinishDrawingFrame(&frame3); | 782 renderer_->FinishDrawingFrame(&frame3); |
782 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 783 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
783 SwapBuffers(); | 784 SwapBuffers(); |
784 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 785 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
785 Mock::VerifyAndClearExpectations(&scheduler_); | 786 Mock::VerifyAndClearExpectations(&scheduler_); |
786 } | 787 } |
787 | 788 |
788 } // namespace | 789 } // namespace |
789 } // namespace cc | 790 } // namespace cc |
OLD | NEW |