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

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

Issue 595593002: Splitting of layers for correct intersections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months 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
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 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698