Chromium Code Reviews| 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 |