Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: cc/output/overlay_unittest.cc

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/gl_renderer_draw_cache.cc ('k') | cc/output/shader.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 using GLRenderer::BeginDrawingFrame;
541
540 virtual void FinishDrawingFrame(DrawingFrame* frame) override { 542 virtual void FinishDrawingFrame(DrawingFrame* frame) override {
541 GLRenderer::FinishDrawingFrame(frame); 543 GLRenderer::FinishDrawingFrame(frame);
542 544
543 if (!expect_overlays_) { 545 if (!expect_overlays_) {
544 EXPECT_EQ(0U, frame->overlay_list.size()); 546 EXPECT_EQ(0U, frame->overlay_list.size());
545 return; 547 return;
546 } 548 }
547 549
548 ASSERT_EQ(2U, frame->overlay_list.size()); 550 ASSERT_EQ(2U, frame->overlay_list.size());
549 EXPECT_NE(0U, frame->overlay_list.back().resource_id); 551 EXPECT_NE(0U, frame->overlay_list.back().resource_id);
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) { 719 TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
718 bool use_validator = true; 720 bool use_validator = true;
719 Init(use_validator); 721 Init(use_validator);
720 renderer_->set_expect_overlays(true); 722 renderer_->set_expect_overlays(true);
721 723
722 ResourceProvider::ResourceId resource1 = 724 ResourceProvider::ResourceId resource1 =
723 CreateResource(resource_provider_.get()); 725 CreateResource(resource_provider_.get());
724 ResourceProvider::ResourceId resource2 = 726 ResourceProvider::ResourceId resource2 =
725 CreateResource(resource_provider_.get()); 727 CreateResource(resource_provider_.get());
726 728
729 scoped_ptr<RenderPass> pass = CreateRenderPass();
730 RenderPassList pass_list;
731 pass_list.push_back(pass.Pass());
732
727 DirectRenderer::DrawingFrame frame1; 733 DirectRenderer::DrawingFrame frame1;
734 frame1.render_passes_in_draw_order = &pass_list;
728 frame1.overlay_list.resize(2); 735 frame1.overlay_list.resize(2);
729 OverlayCandidate& overlay1 = frame1.overlay_list.back(); 736 OverlayCandidate& overlay1 = frame1.overlay_list.back();
730 overlay1.resource_id = resource1; 737 overlay1.resource_id = resource1;
731 overlay1.plane_z_order = 1; 738 overlay1.plane_z_order = 1;
732 739
733 DirectRenderer::DrawingFrame frame2; 740 DirectRenderer::DrawingFrame frame2;
741 frame2.render_passes_in_draw_order = &pass_list;
734 frame2.overlay_list.resize(2); 742 frame2.overlay_list.resize(2);
735 OverlayCandidate& overlay2 = frame2.overlay_list.back(); 743 OverlayCandidate& overlay2 = frame2.overlay_list.back();
736 overlay2.resource_id = resource2; 744 overlay2.resource_id = resource2;
737 overlay2.plane_z_order = 1; 745 overlay2.plane_z_order = 1;
738 746
739 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); 747 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
748 renderer_->BeginDrawingFrame(&frame1);
740 renderer_->FinishDrawingFrame(&frame1); 749 renderer_->FinishDrawingFrame(&frame1);
741 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 750 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
742 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); 751 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
743 SwapBuffers(); 752 SwapBuffers();
744 Mock::VerifyAndClearExpectations(&scheduler_); 753 Mock::VerifyAndClearExpectations(&scheduler_);
745 754
746 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); 755 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
756 renderer_->BeginDrawingFrame(&frame2);
747 renderer_->FinishDrawingFrame(&frame2); 757 renderer_->FinishDrawingFrame(&frame2);
748 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 758 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
749 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); 759 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
750 SwapBuffers(); 760 SwapBuffers();
751 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 761 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
752 Mock::VerifyAndClearExpectations(&scheduler_); 762 Mock::VerifyAndClearExpectations(&scheduler_);
753 763
754 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); 764 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
765 renderer_->BeginDrawingFrame(&frame1);
755 renderer_->FinishDrawingFrame(&frame1); 766 renderer_->FinishDrawingFrame(&frame1);
756 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 767 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
757 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); 768 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
758 SwapBuffers(); 769 SwapBuffers();
759 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); 770 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
760 Mock::VerifyAndClearExpectations(&scheduler_); 771 Mock::VerifyAndClearExpectations(&scheduler_);
761 772
762 // No overlays, release the resource. 773 // No overlays, release the resource.
763 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); 774 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
764 DirectRenderer::DrawingFrame frame3; 775 DirectRenderer::DrawingFrame frame3;
776 frame3.render_passes_in_draw_order = &pass_list;
765 renderer_->set_expect_overlays(false); 777 renderer_->set_expect_overlays(false);
778 renderer_->BeginDrawingFrame(&frame3);
766 renderer_->FinishDrawingFrame(&frame3); 779 renderer_->FinishDrawingFrame(&frame3);
767 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 780 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
768 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); 781 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
769 SwapBuffers(); 782 SwapBuffers();
770 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 783 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
771 Mock::VerifyAndClearExpectations(&scheduler_); 784 Mock::VerifyAndClearExpectations(&scheduler_);
772 785
773 // Use the same buffer twice. 786 // Use the same buffer twice.
774 renderer_->set_expect_overlays(true); 787 renderer_->set_expect_overlays(true);
775 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); 788 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
789 renderer_->BeginDrawingFrame(&frame1);
776 renderer_->FinishDrawingFrame(&frame1); 790 renderer_->FinishDrawingFrame(&frame1);
777 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 791 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
778 SwapBuffers(); 792 SwapBuffers();
779 Mock::VerifyAndClearExpectations(&scheduler_); 793 Mock::VerifyAndClearExpectations(&scheduler_);
780 794
781 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1); 795 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
796 renderer_->BeginDrawingFrame(&frame1);
782 renderer_->FinishDrawingFrame(&frame1); 797 renderer_->FinishDrawingFrame(&frame1);
783 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 798 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
784 SwapBuffers(); 799 SwapBuffers();
785 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 800 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
786 Mock::VerifyAndClearExpectations(&scheduler_); 801 Mock::VerifyAndClearExpectations(&scheduler_);
787 802
788 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); 803 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
789 renderer_->set_expect_overlays(false); 804 renderer_->set_expect_overlays(false);
805 renderer_->BeginDrawingFrame(&frame3);
790 renderer_->FinishDrawingFrame(&frame3); 806 renderer_->FinishDrawingFrame(&frame3);
791 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 807 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
792 SwapBuffers(); 808 SwapBuffers();
793 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 809 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
794 Mock::VerifyAndClearExpectations(&scheduler_); 810 Mock::VerifyAndClearExpectations(&scheduler_);
795 } 811 }
796 812
797 } // namespace 813 } // namespace
798 } // namespace cc 814 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer_draw_cache.cc ('k') | cc/output/shader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698