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

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

Issue 2443003004: cc: Make OutputSurface::BindToClient pure virtual and not return bool (Closed)
Patch Set: bindtoclient-pure-virtual: rebase Created 4 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/context_provider.h ('k') | cc/output/output_surface.h » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 // Changing visibility to public. 333 // Changing visibility to public.
334 using GLRenderer::DoDrawQuad; 334 using GLRenderer::DoDrawQuad;
335 using GLRenderer::BeginDrawingFrame; 335 using GLRenderer::BeginDrawingFrame;
336 using GLRenderer::FinishDrawingQuadList; 336 using GLRenderer::FinishDrawingQuadList;
337 using GLRenderer::stencil_enabled; 337 using GLRenderer::stencil_enabled;
338 }; 338 };
339 339
340 class GLRendererWithDefaultHarnessTest : public GLRendererTest { 340 class GLRendererWithDefaultHarnessTest : public GLRendererTest {
341 protected: 341 protected:
342 GLRendererWithDefaultHarnessTest() { 342 GLRendererWithDefaultHarnessTest() {
343 output_surface_ = 343 output_surface_ = FakeOutputSurface::Create3d();
344 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); 344 output_surface_->BindToClient(&output_surface_client_);
345 CHECK(output_surface_->BindToClient(&output_surface_client_));
346 345
347 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 346 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
348 resource_provider_ = FakeResourceProvider::Create( 347 resource_provider_ = FakeResourceProvider::Create(
349 output_surface_->context_provider(), shared_bitmap_manager_.get()); 348 output_surface_->context_provider(), shared_bitmap_manager_.get());
350 renderer_ = base::MakeUnique<FakeRendererGL>( 349 renderer_ = base::MakeUnique<FakeRendererGL>(
351 &settings_, output_surface_.get(), resource_provider_.get()); 350 &settings_, output_surface_.get(), resource_provider_.get());
352 renderer_->Initialize(); 351 renderer_->Initialize();
353 renderer_->SetVisible(true); 352 renderer_->SetVisible(true);
354 } 353 }
355 354
356 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); } 355 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); }
357 356
358 RendererSettings settings_; 357 RendererSettings settings_;
359 FakeOutputSurfaceClient output_surface_client_; 358 FakeOutputSurfaceClient output_surface_client_;
360 std::unique_ptr<FakeOutputSurface> output_surface_; 359 std::unique_ptr<FakeOutputSurface> output_surface_;
361 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 360 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
362 std::unique_ptr<ResourceProvider> resource_provider_; 361 std::unique_ptr<ResourceProvider> resource_provider_;
363 std::unique_ptr<FakeRendererGL> renderer_; 362 std::unique_ptr<FakeRendererGL> renderer_;
364 }; 363 };
365 364
366 // Closing the namespace here so that GLRendererShaderTest can take advantage 365 // Closing the namespace here so that GLRendererShaderTest can take advantage
367 // of the friend relationship with GLRenderer and all of the mock classes 366 // of the friend relationship with GLRenderer and all of the mock classes
368 // declared above it. 367 // declared above it.
369 } // namespace 368 } // namespace
370 369
371 class GLRendererShaderTest : public GLRendererTest { 370 class GLRendererShaderTest : public GLRendererTest {
372 protected: 371 protected:
373 GLRendererShaderTest() { 372 GLRendererShaderTest() {
374 output_surface_ = FakeOutputSurface::Create3d(); 373 output_surface_ = FakeOutputSurface::Create3d();
375 CHECK(output_surface_->BindToClient(&output_surface_client_)); 374 output_surface_->BindToClient(&output_surface_client_);
376 375
377 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 376 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
378 resource_provider_ = FakeResourceProvider::Create( 377 resource_provider_ = FakeResourceProvider::Create(
379 output_surface_->context_provider(), shared_bitmap_manager_.get()); 378 output_surface_->context_provider(), shared_bitmap_manager_.get());
380 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), 379 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(),
381 resource_provider_.get())); 380 resource_provider_.get()));
382 renderer_->Initialize(); 381 renderer_->Initialize();
383 renderer_->SetVisible(true); 382 renderer_->SetVisible(true);
384 } 383 }
385 384
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 } 591 }
593 void getVertexAttribiv(GLuint index, GLenum pname, GLint* value) override { 592 void getVertexAttribiv(GLuint index, GLenum pname, GLint* value) override {
594 ADD_FAILURE(); 593 ADD_FAILURE();
595 } 594 }
596 GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname) override { 595 GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname) override {
597 ADD_FAILURE(); 596 ADD_FAILURE();
598 return 0; 597 return 0;
599 } 598 }
600 }; 599 };
601 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { 600 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) {
601 auto context = base::MakeUnique<ForbidSynchronousCallContext>();
602 auto provider = TestContextProvider::Create(std::move(context));
603 provider->BindToCurrentThread();
604
602 FakeOutputSurfaceClient output_surface_client; 605 FakeOutputSurfaceClient output_surface_client;
603 std::unique_ptr<OutputSurface> output_surface( 606 std::unique_ptr<OutputSurface> output_surface(
604 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( 607 FakeOutputSurface::Create3d(std::move(provider)));
605 new ForbidSynchronousCallContext))); 608 output_surface->BindToClient(&output_surface_client);
606 CHECK(output_surface->BindToClient(&output_surface_client));
607 609
608 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 610 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
609 new TestSharedBitmapManager()); 611 new TestSharedBitmapManager());
610 std::unique_ptr<ResourceProvider> resource_provider = 612 std::unique_ptr<ResourceProvider> resource_provider =
611 FakeResourceProvider::Create(output_surface->context_provider(), 613 FakeResourceProvider::Create(output_surface->context_provider(),
612 shared_bitmap_manager.get()); 614 shared_bitmap_manager.get());
613 615
614 RendererSettings settings; 616 RendererSettings settings;
615 FakeRendererGL renderer(&settings, output_surface.get(), 617 FakeRendererGL renderer(&settings, output_surface.get(),
616 resource_provider.get()); 618 resource_provider.get());
617 } 619 }
618 620
619 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 621 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
620 public: 622 public:
621 LoseContextOnFirstGetContext() {} 623 LoseContextOnFirstGetContext() {}
622 624
623 void getProgramiv(GLuint program, GLenum pname, GLint* value) override { 625 void getProgramiv(GLuint program, GLenum pname, GLint* value) override {
624 context_lost_ = true; 626 context_lost_ = true;
625 *value = 0; 627 *value = 0;
626 } 628 }
627 629
628 void getShaderiv(GLuint shader, GLenum pname, GLint* value) override { 630 void getShaderiv(GLuint shader, GLenum pname, GLint* value) override {
629 context_lost_ = true; 631 context_lost_ = true;
630 *value = 0; 632 *value = 0;
631 } 633 }
632 }; 634 };
633 635
634 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { 636 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) {
637 auto context = base::MakeUnique<LoseContextOnFirstGetContext>();
638 auto provider = TestContextProvider::Create(std::move(context));
639 provider->BindToCurrentThread();
640
635 FakeOutputSurfaceClient output_surface_client; 641 FakeOutputSurfaceClient output_surface_client;
636 std::unique_ptr<OutputSurface> output_surface( 642 std::unique_ptr<OutputSurface> output_surface(
637 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( 643 FakeOutputSurface::Create3d(std::move(provider)));
638 new LoseContextOnFirstGetContext))); 644 output_surface->BindToClient(&output_surface_client);
639 CHECK(output_surface->BindToClient(&output_surface_client));
640 645
641 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 646 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
642 new TestSharedBitmapManager()); 647 new TestSharedBitmapManager());
643 std::unique_ptr<ResourceProvider> resource_provider = 648 std::unique_ptr<ResourceProvider> resource_provider =
644 FakeResourceProvider::Create(output_surface->context_provider(), 649 FakeResourceProvider::Create(output_surface->context_provider(),
645 shared_bitmap_manager.get()); 650 shared_bitmap_manager.get());
646 651
647 RendererSettings settings; 652 RendererSettings settings;
648 FakeRendererGL renderer(&settings, output_surface.get(), 653 FakeRendererGL renderer(&settings, output_surface.get(),
649 resource_provider.get()); 654 resource_provider.get());
650 } 655 }
651 656
652 class ClearCountingContext : public TestWebGraphicsContext3D { 657 class ClearCountingContext : public TestWebGraphicsContext3D {
653 public: 658 public:
654 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } 659 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; }
655 660
656 MOCK_METHOD3(discardFramebufferEXT, 661 MOCK_METHOD3(discardFramebufferEXT,
657 void(GLenum target, 662 void(GLenum target,
658 GLsizei numAttachments, 663 GLsizei numAttachments,
659 const GLenum* attachments)); 664 const GLenum* attachments));
660 MOCK_METHOD1(clear, void(GLbitfield mask)); 665 MOCK_METHOD1(clear, void(GLbitfield mask));
661 }; 666 };
662 667
663 TEST_F(GLRendererTest, OpaqueBackground) { 668 TEST_F(GLRendererTest, OpaqueBackground) {
664 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 669 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
665 ClearCountingContext* context = context_owned.get(); 670 ClearCountingContext* context = context_owned.get();
666 671
672 auto provider = TestContextProvider::Create(std::move(context_owned));
673 provider->BindToCurrentThread();
674
667 FakeOutputSurfaceClient output_surface_client; 675 FakeOutputSurfaceClient output_surface_client;
668 std::unique_ptr<OutputSurface> output_surface( 676 std::unique_ptr<OutputSurface> output_surface(
669 FakeOutputSurface::Create3d(std::move(context_owned))); 677 FakeOutputSurface::Create3d(std::move(provider)));
670 CHECK(output_surface->BindToClient(&output_surface_client)); 678 output_surface->BindToClient(&output_surface_client);
671 679
672 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 680 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
673 new TestSharedBitmapManager()); 681 new TestSharedBitmapManager());
674 std::unique_ptr<ResourceProvider> resource_provider = 682 std::unique_ptr<ResourceProvider> resource_provider =
675 FakeResourceProvider::Create(output_surface->context_provider(), 683 FakeResourceProvider::Create(output_surface->context_provider(),
676 shared_bitmap_manager.get()); 684 shared_bitmap_manager.get());
677 685
678 RendererSettings settings; 686 RendererSettings settings;
679 FakeRendererGL renderer(&settings, output_surface.get(), 687 FakeRendererGL renderer(&settings, output_surface.get(),
680 resource_provider.get()); 688 resource_provider.get());
(...skipping 17 matching lines...) Expand all
698 EXPECT_CALL(*context, clear(_)).Times(1); 706 EXPECT_CALL(*context, clear(_)).Times(1);
699 #endif 707 #endif
700 DrawFrame(&renderer, viewport_size); 708 DrawFrame(&renderer, viewport_size);
701 Mock::VerifyAndClearExpectations(context); 709 Mock::VerifyAndClearExpectations(context);
702 } 710 }
703 711
704 TEST_F(GLRendererTest, TransparentBackground) { 712 TEST_F(GLRendererTest, TransparentBackground) {
705 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 713 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
706 ClearCountingContext* context = context_owned.get(); 714 ClearCountingContext* context = context_owned.get();
707 715
716 auto provider = TestContextProvider::Create(std::move(context_owned));
717 provider->BindToCurrentThread();
718
708 FakeOutputSurfaceClient output_surface_client; 719 FakeOutputSurfaceClient output_surface_client;
709 std::unique_ptr<OutputSurface> output_surface( 720 std::unique_ptr<OutputSurface> output_surface(
710 FakeOutputSurface::Create3d(std::move(context_owned))); 721 FakeOutputSurface::Create3d(std::move(provider)));
711 CHECK(output_surface->BindToClient(&output_surface_client)); 722 output_surface->BindToClient(&output_surface_client);
712 723
713 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 724 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
714 new TestSharedBitmapManager()); 725 new TestSharedBitmapManager());
715 std::unique_ptr<ResourceProvider> resource_provider = 726 std::unique_ptr<ResourceProvider> resource_provider =
716 FakeResourceProvider::Create(output_surface->context_provider(), 727 FakeResourceProvider::Create(output_surface->context_provider(),
717 shared_bitmap_manager.get()); 728 shared_bitmap_manager.get());
718 729
719 RendererSettings settings; 730 RendererSettings settings;
720 FakeRendererGL renderer(&settings, output_surface.get(), 731 FakeRendererGL renderer(&settings, output_surface.get(),
721 resource_provider.get()); 732 resource_provider.get());
(...skipping 10 matching lines...) Expand all
732 EXPECT_CALL(*context, clear(_)).Times(1); 743 EXPECT_CALL(*context, clear(_)).Times(1);
733 DrawFrame(&renderer, viewport_size); 744 DrawFrame(&renderer, viewport_size);
734 745
735 Mock::VerifyAndClearExpectations(context); 746 Mock::VerifyAndClearExpectations(context);
736 } 747 }
737 748
738 TEST_F(GLRendererTest, OffscreenOutputSurface) { 749 TEST_F(GLRendererTest, OffscreenOutputSurface) {
739 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 750 std::unique_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
740 ClearCountingContext* context = context_owned.get(); 751 ClearCountingContext* context = context_owned.get();
741 752
753 auto provider = TestContextProvider::Create(std::move(context_owned));
754 provider->BindToCurrentThread();
755
742 FakeOutputSurfaceClient output_surface_client; 756 FakeOutputSurfaceClient output_surface_client;
743 std::unique_ptr<OutputSurface> output_surface( 757 std::unique_ptr<OutputSurface> output_surface(
744 FakeOutputSurface::CreateOffscreen(std::move(context_owned))); 758 FakeOutputSurface::CreateOffscreen(std::move(provider)));
745 CHECK(output_surface->BindToClient(&output_surface_client)); 759 output_surface->BindToClient(&output_surface_client);
746 760
747 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 761 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
748 new TestSharedBitmapManager()); 762 new TestSharedBitmapManager());
749 std::unique_ptr<ResourceProvider> resource_provider = 763 std::unique_ptr<ResourceProvider> resource_provider =
750 FakeResourceProvider::Create(output_surface->context_provider(), 764 FakeResourceProvider::Create(output_surface->context_provider(),
751 shared_bitmap_manager.get()); 765 shared_bitmap_manager.get());
752 766
753 RendererSettings settings; 767 RendererSettings settings;
754 FakeRendererGL renderer(&settings, output_surface.get(), 768 FakeRendererGL renderer(&settings, output_surface.get(),
755 resource_provider.get()); 769 resource_provider.get());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 802
789 private: 803 private:
790 GLenum active_texture_; 804 GLenum active_texture_;
791 }; 805 };
792 806
793 TEST_F(GLRendererTest, ActiveTextureState) { 807 TEST_F(GLRendererTest, ActiveTextureState) {
794 std::unique_ptr<TextureStateTrackingContext> context_owned( 808 std::unique_ptr<TextureStateTrackingContext> context_owned(
795 new TextureStateTrackingContext); 809 new TextureStateTrackingContext);
796 TextureStateTrackingContext* context = context_owned.get(); 810 TextureStateTrackingContext* context = context_owned.get();
797 811
812 auto provider = TestContextProvider::Create(std::move(context_owned));
813 provider->BindToCurrentThread();
814
798 FakeOutputSurfaceClient output_surface_client; 815 FakeOutputSurfaceClient output_surface_client;
799 std::unique_ptr<OutputSurface> output_surface( 816 std::unique_ptr<OutputSurface> output_surface(
800 FakeOutputSurface::Create3d(std::move(context_owned))); 817 FakeOutputSurface::Create3d(std::move(provider)));
801 CHECK(output_surface->BindToClient(&output_surface_client)); 818 output_surface->BindToClient(&output_surface_client);
802 819
803 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 820 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
804 new TestSharedBitmapManager()); 821 new TestSharedBitmapManager());
805 std::unique_ptr<ResourceProvider> resource_provider = 822 std::unique_ptr<ResourceProvider> resource_provider =
806 FakeResourceProvider::Create(output_surface->context_provider(), 823 FakeResourceProvider::Create(output_surface->context_provider(),
807 shared_bitmap_manager.get()); 824 shared_bitmap_manager.get());
808 825
809 RendererSettings settings; 826 RendererSettings settings;
810 FakeRendererGL renderer(&settings, output_surface.get(), 827 FakeRendererGL renderer(&settings, output_surface.get(),
811 resource_provider.get()); 828 resource_provider.get());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 MOCK_METHOD1(clear, void(GLbitfield mask)); 886 MOCK_METHOD1(clear, void(GLbitfield mask));
870 MOCK_METHOD4(drawElements, 887 MOCK_METHOD4(drawElements,
871 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset)); 888 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset));
872 }; 889 };
873 890
874 TEST_F(GLRendererTest, ShouldClearRootRenderPass) { 891 TEST_F(GLRendererTest, ShouldClearRootRenderPass) {
875 std::unique_ptr<NoClearRootRenderPassMockContext> mock_context_owned( 892 std::unique_ptr<NoClearRootRenderPassMockContext> mock_context_owned(
876 new NoClearRootRenderPassMockContext); 893 new NoClearRootRenderPassMockContext);
877 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get(); 894 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get();
878 895
896 auto provider = TestContextProvider::Create(std::move(mock_context_owned));
897 provider->BindToCurrentThread();
898
879 FakeOutputSurfaceClient output_surface_client; 899 FakeOutputSurfaceClient output_surface_client;
880 std::unique_ptr<OutputSurface> output_surface( 900 std::unique_ptr<OutputSurface> output_surface(
881 FakeOutputSurface::Create3d(std::move(mock_context_owned))); 901 FakeOutputSurface::Create3d(std::move(provider)));
882 CHECK(output_surface->BindToClient(&output_surface_client)); 902 output_surface->BindToClient(&output_surface_client);
883 903
884 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 904 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
885 new TestSharedBitmapManager()); 905 new TestSharedBitmapManager());
886 std::unique_ptr<ResourceProvider> resource_provider = 906 std::unique_ptr<ResourceProvider> resource_provider =
887 FakeResourceProvider::Create(output_surface->context_provider(), 907 FakeResourceProvider::Create(output_surface->context_provider(),
888 shared_bitmap_manager.get()); 908 shared_bitmap_manager.get());
889 909
890 RendererSettings settings; 910 RendererSettings settings;
891 settings.should_clear_root_render_pass = false; 911 settings.should_clear_root_render_pass = false;
892 912
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 scissor_enabled_ = false; 974 scissor_enabled_ = false;
955 } 975 }
956 976
957 private: 977 private:
958 bool scissor_enabled_ = false; 978 bool scissor_enabled_ = false;
959 }; 979 };
960 980
961 TEST_F(GLRendererTest, ScissorTestWhenClearing) { 981 TEST_F(GLRendererTest, ScissorTestWhenClearing) {
962 auto gl_owned = base::MakeUnique<ScissorTestOnClearCheckingGLES2Interface>(); 982 auto gl_owned = base::MakeUnique<ScissorTestOnClearCheckingGLES2Interface>();
963 983
984 auto provider = TestContextProvider::Create(std::move(gl_owned));
985 provider->BindToCurrentThread();
986
964 FakeOutputSurfaceClient output_surface_client; 987 FakeOutputSurfaceClient output_surface_client;
965 std::unique_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 988 std::unique_ptr<OutputSurface> output_surface(
966 TestContextProvider::Create(std::move(gl_owned)))); 989 FakeOutputSurface::Create3d(std::move(provider)));
967 CHECK(output_surface->BindToClient(&output_surface_client)); 990 output_surface->BindToClient(&output_surface_client);
968 991
969 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 992 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
970 new TestSharedBitmapManager()); 993 new TestSharedBitmapManager());
971 std::unique_ptr<ResourceProvider> resource_provider = 994 std::unique_ptr<ResourceProvider> resource_provider =
972 FakeResourceProvider::Create(output_surface->context_provider(), 995 FakeResourceProvider::Create(output_surface->context_provider(),
973 shared_bitmap_manager.get()); 996 shared_bitmap_manager.get());
974 997
975 RendererSettings settings; 998 RendererSettings settings;
976 FakeRendererGL renderer(&settings, output_surface.get(), 999 FakeRendererGL renderer(&settings, output_surface.get(),
977 resource_provider.get()); 1000 resource_provider.get());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 void reset_discarded() { discarded_ = 0; } 1050 void reset_discarded() { discarded_ = 0; }
1028 1051
1029 private: 1052 private:
1030 int discarded_ = 0; 1053 int discarded_ = 0;
1031 }; 1054 };
1032 1055
1033 TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { 1056 TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) {
1034 auto gl_owned = base::MakeUnique<DiscardCheckingGLES2Interface>(); 1057 auto gl_owned = base::MakeUnique<DiscardCheckingGLES2Interface>();
1035 auto* gl = gl_owned.get(); 1058 auto* gl = gl_owned.get();
1036 1059
1060 auto provider = TestContextProvider::Create(std::move(gl_owned));
1061 provider->BindToCurrentThread();
1062
1037 FakeOutputSurfaceClient output_surface_client; 1063 FakeOutputSurfaceClient output_surface_client;
1038 auto output_surface = FakeOutputSurface::Create3d(std::move(gl_owned)); 1064 auto output_surface = FakeOutputSurface::Create3d(std::move(provider));
1039 CHECK(output_surface->BindToClient(&output_surface_client)); 1065 output_surface->BindToClient(&output_surface_client);
1040 1066
1041 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1067 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1042 new TestSharedBitmapManager()); 1068 new TestSharedBitmapManager());
1043 std::unique_ptr<ResourceProvider> resource_provider = 1069 std::unique_ptr<ResourceProvider> resource_provider =
1044 FakeResourceProvider::Create(output_surface->context_provider(), 1070 FakeResourceProvider::Create(output_surface->context_provider(),
1045 shared_bitmap_manager.get()); 1071 shared_bitmap_manager.get());
1046 1072
1047 RendererSettings settings; 1073 RendererSettings settings;
1048 settings.partial_swap_enabled = true; 1074 settings.partial_swap_enabled = true;
1049 FakeRendererGL renderer(&settings, output_surface.get(), 1075 FakeRendererGL renderer(&settings, output_surface.get(),
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 }; 1134 };
1109 1135
1110 TEST_F(GLRendererTest, DrawFramePreservesFramebuffer) { 1136 TEST_F(GLRendererTest, DrawFramePreservesFramebuffer) {
1111 // When using render-to-FBO to display the surface, all rendering is done 1137 // When using render-to-FBO to display the surface, all rendering is done
1112 // to a non-zero FBO. Make sure that the framebuffer is always restored to 1138 // to a non-zero FBO. Make sure that the framebuffer is always restored to
1113 // the correct framebuffer during rendering, if changed. 1139 // the correct framebuffer during rendering, if changed.
1114 // Note: there is one path that will set it to 0, but that is after the render 1140 // Note: there is one path that will set it to 0, but that is after the render
1115 // has finished. 1141 // has finished.
1116 FakeOutputSurfaceClient output_surface_client; 1142 FakeOutputSurfaceClient output_surface_client;
1117 std::unique_ptr<FakeOutputSurface> output_surface( 1143 std::unique_ptr<FakeOutputSurface> output_surface(
1118 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); 1144 FakeOutputSurface::Create3d());
1119 CHECK(output_surface->BindToClient(&output_surface_client)); 1145 output_surface->BindToClient(&output_surface_client);
1120 1146
1121 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1147 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1122 new TestSharedBitmapManager()); 1148 new TestSharedBitmapManager());
1123 std::unique_ptr<ResourceProvider> resource_provider = 1149 std::unique_ptr<ResourceProvider> resource_provider =
1124 FakeResourceProvider::Create(output_surface->context_provider(), 1150 FakeResourceProvider::Create(output_surface->context_provider(),
1125 shared_bitmap_manager.get()); 1151 shared_bitmap_manager.get());
1126 1152
1127 RendererSettings settings; 1153 RendererSettings settings;
1128 FakeRendererGL renderer(&settings, output_surface.get(), 1154 FakeRendererGL renderer(&settings, output_surface.get(),
1129 resource_provider.get()); 1155 resource_provider.get());
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1446 // through the OutputSurface abstraction. 1472 // through the OutputSurface abstraction.
1447 MOCK_METHOD2(bindFramebuffer, void(GLenum target, GLuint framebuffer)); 1473 MOCK_METHOD2(bindFramebuffer, void(GLenum target, GLuint framebuffer));
1448 MOCK_METHOD3(reshapeWithScaleFactor, 1474 MOCK_METHOD3(reshapeWithScaleFactor,
1449 void(int width, int height, float scale_factor)); 1475 void(int width, int height, float scale_factor));
1450 MOCK_METHOD4(drawElements, 1476 MOCK_METHOD4(drawElements,
1451 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset)); 1477 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset));
1452 }; 1478 };
1453 1479
1454 class MockOutputSurface : public OutputSurface { 1480 class MockOutputSurface : public OutputSurface {
1455 public: 1481 public:
1456 MockOutputSurface() 1482 explicit MockOutputSurface(scoped_refptr<ContextProvider> provider)
1457 : OutputSurface(TestContextProvider::Create( 1483 : OutputSurface(std::move(provider)) {}
1458 base::MakeUnique<StrictMock<OutputSurfaceMockContext>>())) {}
1459 virtual ~MockOutputSurface() {} 1484 virtual ~MockOutputSurface() {}
1460 1485
1486 void BindToClient(OutputSurfaceClient*) override {}
1487
1461 MOCK_METHOD0(EnsureBackbuffer, void()); 1488 MOCK_METHOD0(EnsureBackbuffer, void());
1462 MOCK_METHOD0(DiscardBackbuffer, void()); 1489 MOCK_METHOD0(DiscardBackbuffer, void());
1463 MOCK_METHOD4(Reshape, 1490 MOCK_METHOD4(Reshape,
1464 void(const gfx::Size& size, 1491 void(const gfx::Size& size,
1465 float scale_factor, 1492 float scale_factor,
1466 const gfx::ColorSpace& color_space, 1493 const gfx::ColorSpace& color_space,
1467 bool has_alpha)); 1494 bool has_alpha));
1468 MOCK_METHOD0(BindFramebuffer, void()); 1495 MOCK_METHOD0(BindFramebuffer, void());
1469 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum()); 1496 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum());
1470 MOCK_METHOD1(SwapBuffers_, void(OutputSurfaceFrame& frame)); // NOLINT 1497 MOCK_METHOD1(SwapBuffers_, void(OutputSurfaceFrame& frame)); // NOLINT
1471 void SwapBuffers(OutputSurfaceFrame frame) override { SwapBuffers_(frame); } 1498 void SwapBuffers(OutputSurfaceFrame frame) override { SwapBuffers_(frame); }
1472 MOCK_CONST_METHOD0(GetOverlayCandidateValidator, 1499 MOCK_CONST_METHOD0(GetOverlayCandidateValidator,
1473 OverlayCandidateValidator*()); 1500 OverlayCandidateValidator*());
1474 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool()); 1501 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool());
1475 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned()); 1502 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned());
1476 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool()); 1503 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool());
1477 MOCK_CONST_METHOD0(HasExternalStencilTest, bool()); 1504 MOCK_CONST_METHOD0(HasExternalStencilTest, bool());
1478 MOCK_METHOD0(ApplyExternalStencil, void()); 1505 MOCK_METHOD0(ApplyExternalStencil, void());
1479 }; 1506 };
1480 1507
1481 class MockOutputSurfaceTest : public GLRendererTest { 1508 class MockOutputSurfaceTest : public GLRendererTest {
1482 protected: 1509 protected:
1483 virtual void SetUp() { 1510 void SetUp() override {
1511 auto context = base::MakeUnique<StrictMock<OutputSurfaceMockContext>>();
1512 context_ = context.get();
1513 auto provider = TestContextProvider::Create(std::move(context));
1514 provider->BindToCurrentThread();
1515 output_surface_ =
1516 base::MakeUnique<StrictMock<MockOutputSurface>>(std::move(provider));
1517
1484 FakeOutputSurfaceClient output_surface_client_; 1518 FakeOutputSurfaceClient output_surface_client_;
1485 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1519 output_surface_->BindToClient(&output_surface_client_);
1486 1520
1487 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 1521 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1488 resource_provider_ = FakeResourceProvider::Create( 1522 resource_provider_ = FakeResourceProvider::Create(
1489 output_surface_.context_provider(), shared_bitmap_manager_.get()); 1523 output_surface_->context_provider(), shared_bitmap_manager_.get());
1490 1524
1491 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, 1525 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(),
1492 resource_provider_.get())); 1526 resource_provider_.get()));
1493 EXPECT_CALL(output_surface_, GetOverlayCandidateValidator()).Times(1); 1527 EXPECT_CALL(*output_surface_, GetOverlayCandidateValidator()).Times(1);
1494 renderer_->Initialize(); 1528 renderer_->Initialize();
1495 1529
1496 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); 1530 EXPECT_CALL(*output_surface_, EnsureBackbuffer()).Times(1);
1497 renderer_->SetVisible(true); 1531 renderer_->SetVisible(true);
1498 Mock::VerifyAndClearExpectations(&output_surface_); 1532 Mock::VerifyAndClearExpectations(output_surface_.get());
1499 } 1533 }
1500 1534
1501 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); } 1535 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); }
1502 1536
1503 void DrawFrame(float device_scale_factor, 1537 void DrawFrame(float device_scale_factor,
1504 const gfx::Size& viewport_size, 1538 const gfx::Size& viewport_size,
1505 bool transparent) { 1539 bool transparent) {
1506 RenderPassId render_pass_id(1, 0); 1540 RenderPassId render_pass_id(1, 0);
1507 RenderPass* render_pass = 1541 RenderPass* render_pass =
1508 AddRenderPass(&render_passes_in_draw_order_, render_pass_id, 1542 AddRenderPass(&render_passes_in_draw_order_, render_pass_id,
1509 gfx::Rect(viewport_size), gfx::Transform()); 1543 gfx::Rect(viewport_size), gfx::Transform());
1510 AddQuad(render_pass, gfx::Rect(viewport_size), SK_ColorGREEN); 1544 AddQuad(render_pass, gfx::Rect(viewport_size), SK_ColorGREEN);
1511 render_pass->has_transparent_background = transparent; 1545 render_pass->has_transparent_background = transparent;
1512 1546
1513 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); 1547 EXPECT_CALL(*output_surface_, EnsureBackbuffer()).WillRepeatedly(Return());
1514 1548
1515 EXPECT_CALL(output_surface_, 1549 EXPECT_CALL(*output_surface_,
1516 Reshape(viewport_size, device_scale_factor, _, transparent)) 1550 Reshape(viewport_size, device_scale_factor, _, transparent))
1517 .Times(1); 1551 .Times(1);
1518 1552
1519 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); 1553 EXPECT_CALL(*output_surface_, BindFramebuffer()).Times(1);
1520 1554
1521 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1); 1555 EXPECT_CALL(*context_, drawElements(_, _, _, _)).Times(1);
1522 1556
1523 renderer_->DecideRenderPassAllocationsForFrame( 1557 renderer_->DecideRenderPassAllocationsForFrame(
1524 render_passes_in_draw_order_); 1558 render_passes_in_draw_order_);
1525 renderer_->DrawFrame(&render_passes_in_draw_order_, device_scale_factor, 1559 renderer_->DrawFrame(&render_passes_in_draw_order_, device_scale_factor,
1526 gfx::ColorSpace(), viewport_size); 1560 gfx::ColorSpace(), viewport_size);
1527 } 1561 }
1528 1562
1529 OutputSurfaceMockContext* Context() {
1530 return static_cast<OutputSurfaceMockContext*>(
1531 static_cast<TestContextProvider*>(output_surface_.context_provider())
1532 ->TestContext3d());
1533 }
1534
1535 RendererSettings settings_; 1563 RendererSettings settings_;
1536 FakeOutputSurfaceClient output_surface_client_; 1564 FakeOutputSurfaceClient output_surface_client_;
1537 StrictMock<MockOutputSurface> output_surface_; 1565 OutputSurfaceMockContext* context_ = nullptr;
1566 std::unique_ptr<StrictMock<MockOutputSurface>> output_surface_;
1538 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 1567 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
1539 std::unique_ptr<ResourceProvider> resource_provider_; 1568 std::unique_ptr<ResourceProvider> resource_provider_;
1540 std::unique_ptr<FakeRendererGL> renderer_; 1569 std::unique_ptr<FakeRendererGL> renderer_;
1541 }; 1570 };
1542 1571
1543 TEST_F(MockOutputSurfaceTest, BackbufferDiscard) { 1572 TEST_F(MockOutputSurfaceTest, BackbufferDiscard) {
1544 // Drop backbuffer on hide. 1573 // Drop backbuffer on hide.
1545 EXPECT_CALL(output_surface_, DiscardBackbuffer()).Times(1); 1574 EXPECT_CALL(*output_surface_, DiscardBackbuffer()).Times(1);
1546 renderer_->SetVisible(false); 1575 renderer_->SetVisible(false);
1547 Mock::VerifyAndClearExpectations(&output_surface_); 1576 Mock::VerifyAndClearExpectations(output_surface_.get());
1548 1577
1549 // Restore backbuffer on show. 1578 // Restore backbuffer on show.
1550 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); 1579 EXPECT_CALL(*output_surface_, EnsureBackbuffer()).Times(1);
1551 renderer_->SetVisible(true); 1580 renderer_->SetVisible(true);
1552 Mock::VerifyAndClearExpectations(&output_surface_); 1581 Mock::VerifyAndClearExpectations(output_surface_.get());
1553 } 1582 }
1554 1583
1555 class TestOverlayProcessor : public OverlayProcessor { 1584 class TestOverlayProcessor : public OverlayProcessor {
1556 public: 1585 public:
1557 class Strategy : public OverlayProcessor::Strategy { 1586 class Strategy : public OverlayProcessor::Strategy {
1558 public: 1587 public:
1559 Strategy() {} 1588 Strategy() {}
1560 ~Strategy() override {} 1589 ~Strategy() override {}
1561 MOCK_METHOD3(Attempt, 1590 MOCK_METHOD3(Attempt,
1562 bool(ResourceProvider* resource_provider, 1591 bool(ResourceProvider* resource_provider,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 void MailboxReleased(const gpu::SyncToken& sync_token, 1623 void MailboxReleased(const gpu::SyncToken& sync_token,
1595 bool lost_resource, 1624 bool lost_resource,
1596 BlockingTaskRunner* main_thread_task_runner) {} 1625 BlockingTaskRunner* main_thread_task_runner) {}
1597 1626
1598 void IgnoreCopyResult(std::unique_ptr<CopyOutputResult> result) {} 1627 void IgnoreCopyResult(std::unique_ptr<CopyOutputResult> result) {}
1599 1628
1600 TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { 1629 TEST_F(GLRendererTest, DontOverlayWithCopyRequests) {
1601 FakeOutputSurfaceClient output_surface_client; 1630 FakeOutputSurfaceClient output_surface_client;
1602 std::unique_ptr<FakeOutputSurface> output_surface( 1631 std::unique_ptr<FakeOutputSurface> output_surface(
1603 FakeOutputSurface::Create3d()); 1632 FakeOutputSurface::Create3d());
1604 CHECK(output_surface->BindToClient(&output_surface_client)); 1633 output_surface->BindToClient(&output_surface_client);
1605 1634
1606 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1635 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1607 new TestSharedBitmapManager()); 1636 new TestSharedBitmapManager());
1608 std::unique_ptr<ResourceProvider> resource_provider = 1637 std::unique_ptr<ResourceProvider> resource_provider =
1609 FakeResourceProvider::Create(output_surface->context_provider(), 1638 FakeResourceProvider::Create(output_surface->context_provider(),
1610 shared_bitmap_manager.get()); 1639 shared_bitmap_manager.get());
1611 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1640 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
1612 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1641 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
1613 1642
1614 RendererSettings settings; 1643 RendererSettings settings;
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1742 unsigned overlay_texture_id, 1771 unsigned overlay_texture_id,
1743 const gfx::Rect& display_bounds, 1772 const gfx::Rect& display_bounds,
1744 const gfx::RectF& uv_rect)); 1773 const gfx::RectF& uv_rect));
1745 }; 1774 };
1746 1775
1747 TEST_F(GLRendererTest, OverlaySyncTokensAreProcessed) { 1776 TEST_F(GLRendererTest, OverlaySyncTokensAreProcessed) {
1748 std::unique_ptr<WaitSyncTokenCountingContext> context_owned( 1777 std::unique_ptr<WaitSyncTokenCountingContext> context_owned(
1749 new WaitSyncTokenCountingContext); 1778 new WaitSyncTokenCountingContext);
1750 WaitSyncTokenCountingContext* context = context_owned.get(); 1779 WaitSyncTokenCountingContext* context = context_owned.get();
1751 1780
1781 auto provider = TestContextProvider::Create(std::move(context_owned));
1782 provider->BindToCurrentThread();
1783
1752 MockOverlayScheduler overlay_scheduler; 1784 MockOverlayScheduler overlay_scheduler;
1753 scoped_refptr<TestContextProvider> context_provider = 1785 provider->support()->SetScheduleOverlayPlaneCallback(base::Bind(
1754 TestContextProvider::Create(std::move(context_owned));
1755 context_provider->support()->SetScheduleOverlayPlaneCallback(base::Bind(
1756 &MockOverlayScheduler::Schedule, base::Unretained(&overlay_scheduler))); 1786 &MockOverlayScheduler::Schedule, base::Unretained(&overlay_scheduler)));
1757 1787
1758 FakeOutputSurfaceClient output_surface_client; 1788 FakeOutputSurfaceClient output_surface_client;
1759 std::unique_ptr<OutputSurface> output_surface( 1789 std::unique_ptr<OutputSurface> output_surface(
1760 FakeOutputSurface::Create3d(context_provider)); 1790 FakeOutputSurface::Create3d(std::move(provider)));
1761 CHECK(output_surface->BindToClient(&output_surface_client)); 1791 output_surface->BindToClient(&output_surface_client);
1762 1792
1763 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1793 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1764 new TestSharedBitmapManager()); 1794 new TestSharedBitmapManager());
1765 std::unique_ptr<ResourceProvider> resource_provider = 1795 std::unique_ptr<ResourceProvider> resource_provider =
1766 FakeResourceProvider::Create(output_surface->context_provider(), 1796 FakeResourceProvider::Create(output_surface->context_provider(),
1767 shared_bitmap_manager.get()); 1797 shared_bitmap_manager.get());
1768 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1798 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
1769 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1799 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
1770 1800
1771 RendererSettings settings; 1801 RendererSettings settings;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1835 MOCK_METHOD1(Disable, void(GLenum cap)); 1865 MOCK_METHOD1(Disable, void(GLenum cap));
1836 MOCK_METHOD4(Scissor, void(GLint x, GLint y, GLsizei width, GLsizei height)); 1866 MOCK_METHOD4(Scissor, void(GLint x, GLint y, GLsizei width, GLsizei height));
1837 }; 1867 };
1838 1868
1839 class GLRendererPartialSwapTest : public GLRendererTest { 1869 class GLRendererPartialSwapTest : public GLRendererTest {
1840 protected: 1870 protected:
1841 void RunTest(bool partial_swap) { 1871 void RunTest(bool partial_swap) {
1842 auto gl_owned = base::MakeUnique<PartialSwapMockGLES2Interface>(); 1872 auto gl_owned = base::MakeUnique<PartialSwapMockGLES2Interface>();
1843 auto* gl = gl_owned.get(); 1873 auto* gl = gl_owned.get();
1844 1874
1875 auto provider = TestContextProvider::Create(std::move(gl_owned));
1876 provider->BindToCurrentThread();
1877
1845 FakeOutputSurfaceClient output_surface_client; 1878 FakeOutputSurfaceClient output_surface_client;
1846 std::unique_ptr<FakeOutputSurface> output_surface( 1879 std::unique_ptr<FakeOutputSurface> output_surface(
1847 FakeOutputSurface::Create3d(std::move(gl_owned))); 1880 FakeOutputSurface::Create3d(std::move(provider)));
1848 CHECK(output_surface->BindToClient(&output_surface_client)); 1881 output_surface->BindToClient(&output_surface_client);
1849 1882
1850 std::unique_ptr<ResourceProvider> resource_provider = 1883 std::unique_ptr<ResourceProvider> resource_provider =
1851 FakeResourceProvider::Create(output_surface->context_provider(), 1884 FakeResourceProvider::Create(output_surface->context_provider(),
1852 nullptr); 1885 nullptr);
1853 1886
1854 RendererSettings settings; 1887 RendererSettings settings;
1855 settings.partial_swap_enabled = partial_swap; 1888 settings.partial_swap_enabled = partial_swap;
1856 FakeRendererGL renderer(&settings, output_surface.get(), 1889 FakeRendererGL renderer(&settings, output_surface.get(),
1857 resource_provider.get()); 1890 resource_provider.get());
1858 renderer.Initialize(); 1891 renderer.Initialize();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1916 MockContextSupport() {} 1949 MockContextSupport() {}
1917 MOCK_METHOD1(SetAggressivelyFreeResources, 1950 MOCK_METHOD1(SetAggressivelyFreeResources,
1918 void(bool aggressively_free_resources)); 1951 void(bool aggressively_free_resources));
1919 }; 1952 };
1920 1953
1921 void SetUp() override { 1954 void SetUp() override {
1922 auto context_support = base::MakeUnique<MockContextSupport>(); 1955 auto context_support = base::MakeUnique<MockContextSupport>();
1923 context_support_ptr_ = context_support.get(); 1956 context_support_ptr_ = context_support.get();
1924 auto context_provider = TestContextProvider::Create( 1957 auto context_provider = TestContextProvider::Create(
1925 TestWebGraphicsContext3D::Create(), std::move(context_support)); 1958 TestWebGraphicsContext3D::Create(), std::move(context_support));
1959 context_provider->BindToCurrentThread();
1926 output_surface_ = FakeOutputSurface::Create3d(std::move(context_provider)); 1960 output_surface_ = FakeOutputSurface::Create3d(std::move(context_provider));
1927 output_surface_->BindToClient(&output_surface_client_); 1961 output_surface_->BindToClient(&output_surface_client_);
1928 resource_provider_ = FakeResourceProvider::Create( 1962 resource_provider_ = FakeResourceProvider::Create(
1929 output_surface_->context_provider(), nullptr); 1963 output_surface_->context_provider(), nullptr);
1930 renderer_ = 1964 renderer_ =
1931 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), 1965 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(),
1932 resource_provider_.get(), nullptr, 0); 1966 resource_provider_.get(), nullptr, 0);
1933 renderer_->Initialize(); 1967 renderer_->Initialize();
1934 } 1968 }
1935 1969
(...skipping 11 matching lines...) Expand all
1947 renderer_->SetVisible(true); 1981 renderer_->SetVisible(true);
1948 Mock::VerifyAndClearExpectations(context_support_ptr_); 1982 Mock::VerifyAndClearExpectations(context_support_ptr_);
1949 1983
1950 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); 1984 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true));
1951 renderer_->SetVisible(false); 1985 renderer_->SetVisible(false);
1952 Mock::VerifyAndClearExpectations(context_support_ptr_); 1986 Mock::VerifyAndClearExpectations(context_support_ptr_);
1953 } 1987 }
1954 1988
1955 } // namespace 1989 } // namespace
1956 } // namespace cc 1990 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/context_provider.h ('k') | cc/output/output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698