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 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
530 : GLRenderer(client, | 530 : GLRenderer(client, |
531 settings, | 531 settings, |
532 output_surface, | 532 output_surface, |
533 resource_provider, | 533 resource_provider, |
534 NULL, | 534 NULL, |
535 0), | 535 0), |
536 expect_overlays_(false) {} | 536 expect_overlays_(false) {} |
537 | 537 |
538 MOCK_METHOD2(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad)); | 538 MOCK_METHOD2(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad)); |
539 | 539 |
540 virtual void BeginDrawingFrame(DrawingFrame* frame) override { | |
danakj
2014/10/29 15:18:26
using GLRenderer::BeginDrawingFrame instead.
reveman
2014/10/29 16:14:52
Sure.
| |
541 GLRenderer::BeginDrawingFrame(frame); | |
542 } | |
543 | |
540 virtual void FinishDrawingFrame(DrawingFrame* frame) override { | 544 virtual void FinishDrawingFrame(DrawingFrame* frame) override { |
541 GLRenderer::FinishDrawingFrame(frame); | 545 GLRenderer::FinishDrawingFrame(frame); |
542 | 546 |
543 if (!expect_overlays_) { | 547 if (!expect_overlays_) { |
544 EXPECT_EQ(0U, frame->overlay_list.size()); | 548 EXPECT_EQ(0U, frame->overlay_list.size()); |
545 return; | 549 return; |
546 } | 550 } |
547 | 551 |
548 ASSERT_EQ(2U, frame->overlay_list.size()); | 552 ASSERT_EQ(2U, frame->overlay_list.size()); |
549 EXPECT_NE(0U, frame->overlay_list.back().resource_id); | 553 EXPECT_NE(0U, frame->overlay_list.back().resource_id); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
730 overlay1.resource_id = resource1; | 734 overlay1.resource_id = resource1; |
731 overlay1.plane_z_order = 1; | 735 overlay1.plane_z_order = 1; |
732 | 736 |
733 DirectRenderer::DrawingFrame frame2; | 737 DirectRenderer::DrawingFrame frame2; |
734 frame2.overlay_list.resize(2); | 738 frame2.overlay_list.resize(2); |
735 OverlayCandidate& overlay2 = frame2.overlay_list.back(); | 739 OverlayCandidate& overlay2 = frame2.overlay_list.back(); |
736 overlay2.resource_id = resource2; | 740 overlay2.resource_id = resource2; |
737 overlay2.plane_z_order = 1; | 741 overlay2.plane_z_order = 1; |
738 | 742 |
739 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); | 743 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); |
744 renderer_->BeginDrawingFrame(&frame1); | |
740 renderer_->FinishDrawingFrame(&frame1); | 745 renderer_->FinishDrawingFrame(&frame1); |
741 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 746 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
742 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); | 747 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
743 SwapBuffers(); | 748 SwapBuffers(); |
744 Mock::VerifyAndClearExpectations(&scheduler_); | 749 Mock::VerifyAndClearExpectations(&scheduler_); |
745 | 750 |
746 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); | 751 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); |
752 renderer_->BeginDrawingFrame(&frame2); | |
747 renderer_->FinishDrawingFrame(&frame2); | 753 renderer_->FinishDrawingFrame(&frame2); |
748 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 754 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
749 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); | 755 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); |
750 SwapBuffers(); | 756 SwapBuffers(); |
751 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 757 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
752 Mock::VerifyAndClearExpectations(&scheduler_); | 758 Mock::VerifyAndClearExpectations(&scheduler_); |
753 | 759 |
754 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); | 760 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); |
761 renderer_->BeginDrawingFrame(&frame1); | |
755 renderer_->FinishDrawingFrame(&frame1); | 762 renderer_->FinishDrawingFrame(&frame1); |
756 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 763 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
757 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); | 764 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); |
758 SwapBuffers(); | 765 SwapBuffers(); |
759 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); | 766 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
760 Mock::VerifyAndClearExpectations(&scheduler_); | 767 Mock::VerifyAndClearExpectations(&scheduler_); |
761 | 768 |
762 // No overlays, release the resource. | 769 // No overlays, release the resource. |
763 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); | 770 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); |
764 DirectRenderer::DrawingFrame frame3; | 771 DirectRenderer::DrawingFrame frame3; |
765 renderer_->set_expect_overlays(false); | 772 renderer_->set_expect_overlays(false); |
773 renderer_->BeginDrawingFrame(&frame3); | |
766 renderer_->FinishDrawingFrame(&frame3); | 774 renderer_->FinishDrawingFrame(&frame3); |
767 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 775 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
768 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); | 776 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
769 SwapBuffers(); | 777 SwapBuffers(); |
770 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 778 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
771 Mock::VerifyAndClearExpectations(&scheduler_); | 779 Mock::VerifyAndClearExpectations(&scheduler_); |
772 | 780 |
773 // Use the same buffer twice. | 781 // Use the same buffer twice. |
774 renderer_->set_expect_overlays(true); | 782 renderer_->set_expect_overlays(true); |
775 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); | 783 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); |
784 renderer_->BeginDrawingFrame(&frame1); | |
776 renderer_->FinishDrawingFrame(&frame1); | 785 renderer_->FinishDrawingFrame(&frame1); |
777 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 786 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
778 SwapBuffers(); | 787 SwapBuffers(); |
779 Mock::VerifyAndClearExpectations(&scheduler_); | 788 Mock::VerifyAndClearExpectations(&scheduler_); |
780 | 789 |
781 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); | 790 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); |
791 renderer_->BeginDrawingFrame(&frame1); | |
782 renderer_->FinishDrawingFrame(&frame1); | 792 renderer_->FinishDrawingFrame(&frame1); |
783 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 793 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
784 SwapBuffers(); | 794 SwapBuffers(); |
785 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 795 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
786 Mock::VerifyAndClearExpectations(&scheduler_); | 796 Mock::VerifyAndClearExpectations(&scheduler_); |
787 | 797 |
788 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); | 798 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); |
789 renderer_->set_expect_overlays(false); | 799 renderer_->set_expect_overlays(false); |
800 renderer_->BeginDrawingFrame(&frame3); | |
790 renderer_->FinishDrawingFrame(&frame3); | 801 renderer_->FinishDrawingFrame(&frame3); |
791 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); | 802 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
792 SwapBuffers(); | 803 SwapBuffers(); |
793 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); | 804 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
794 Mock::VerifyAndClearExpectations(&scheduler_); | 805 Mock::VerifyAndClearExpectations(&scheduler_); |
795 } | 806 } |
796 | 807 |
797 } // namespace | 808 } // namespace |
798 } // namespace cc | 809 } // namespace cc |
OLD | NEW |