OLD | NEW |
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 | 10 |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 | 344 |
345 class GLRendererWithDefaultHarnessTest : public GLRendererTest { | 345 class GLRendererWithDefaultHarnessTest : public GLRendererTest { |
346 protected: | 346 protected: |
347 GLRendererWithDefaultHarnessTest() { | 347 GLRendererWithDefaultHarnessTest() { |
348 output_surface_ = | 348 output_surface_ = |
349 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); | 349 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); |
350 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 350 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
351 | 351 |
352 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 352 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
353 resource_provider_ = FakeResourceProvider::Create( | 353 resource_provider_ = FakeResourceProvider::Create( |
354 output_surface_.get(), shared_bitmap_manager_.get()); | 354 output_surface_->context_provider(), shared_bitmap_manager_.get()); |
355 renderer_ = base::MakeUnique<FakeRendererGL>( | 355 renderer_ = base::MakeUnique<FakeRendererGL>( |
356 &settings_, output_surface_.get(), resource_provider_.get()); | 356 &settings_, output_surface_.get(), resource_provider_.get()); |
357 renderer_->Initialize(); | 357 renderer_->Initialize(); |
358 renderer_->SetVisible(true); | 358 renderer_->SetVisible(true); |
359 } | 359 } |
360 | 360 |
361 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 361 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
362 | 362 |
363 RendererSettings settings_; | 363 RendererSettings settings_; |
364 FakeOutputSurfaceClient output_surface_client_; | 364 FakeOutputSurfaceClient output_surface_client_; |
365 std::unique_ptr<FakeOutputSurface> output_surface_; | 365 std::unique_ptr<FakeOutputSurface> output_surface_; |
366 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; | 366 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; |
367 std::unique_ptr<ResourceProvider> resource_provider_; | 367 std::unique_ptr<ResourceProvider> resource_provider_; |
368 std::unique_ptr<FakeRendererGL> renderer_; | 368 std::unique_ptr<FakeRendererGL> renderer_; |
369 }; | 369 }; |
370 | 370 |
371 // Closing the namespace here so that GLRendererShaderTest can take advantage | 371 // Closing the namespace here so that GLRendererShaderTest can take advantage |
372 // of the friend relationship with GLRenderer and all of the mock classes | 372 // of the friend relationship with GLRenderer and all of the mock classes |
373 // declared above it. | 373 // declared above it. |
374 } // namespace | 374 } // namespace |
375 | 375 |
376 class GLRendererShaderTest : public GLRendererTest { | 376 class GLRendererShaderTest : public GLRendererTest { |
377 protected: | 377 protected: |
378 GLRendererShaderTest() { | 378 GLRendererShaderTest() { |
379 output_surface_ = FakeOutputSurface::Create3d(); | 379 output_surface_ = FakeOutputSurface::Create3d(); |
380 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 380 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
381 | 381 |
382 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 382 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
383 resource_provider_ = FakeResourceProvider::Create( | 383 resource_provider_ = FakeResourceProvider::Create( |
384 output_surface_.get(), shared_bitmap_manager_.get()); | 384 output_surface_->context_provider(), shared_bitmap_manager_.get()); |
385 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), | 385 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), |
386 resource_provider_.get())); | 386 resource_provider_.get())); |
387 renderer_->Initialize(); | 387 renderer_->Initialize(); |
388 renderer_->SetVisible(true); | 388 renderer_->SetVisible(true); |
389 } | 389 } |
390 | 390 |
391 void TestRenderPassProgram(TexCoordPrecision precision, | 391 void TestRenderPassProgram(TexCoordPrecision precision, |
392 BlendMode blend_mode) { | 392 BlendMode blend_mode) { |
393 EXPECT_PROGRAM_VALID( | 393 EXPECT_PROGRAM_VALID( |
394 &renderer_->render_pass_program_[precision][blend_mode]); | 394 &renderer_->render_pass_program_[precision][blend_mode]); |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { | 606 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { |
607 FakeOutputSurfaceClient output_surface_client; | 607 FakeOutputSurfaceClient output_surface_client; |
608 std::unique_ptr<OutputSurface> output_surface( | 608 std::unique_ptr<OutputSurface> output_surface( |
609 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( | 609 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( |
610 new ForbidSynchronousCallContext))); | 610 new ForbidSynchronousCallContext))); |
611 CHECK(output_surface->BindToClient(&output_surface_client)); | 611 CHECK(output_surface->BindToClient(&output_surface_client)); |
612 | 612 |
613 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 613 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
614 new TestSharedBitmapManager()); | 614 new TestSharedBitmapManager()); |
615 std::unique_ptr<ResourceProvider> resource_provider = | 615 std::unique_ptr<ResourceProvider> resource_provider = |
616 FakeResourceProvider::Create(output_surface.get(), | 616 FakeResourceProvider::Create(output_surface->context_provider(), |
617 shared_bitmap_manager.get()); | 617 shared_bitmap_manager.get()); |
618 | 618 |
619 RendererSettings settings; | 619 RendererSettings settings; |
620 FakeRendererGL renderer(&settings, output_surface.get(), | 620 FakeRendererGL renderer(&settings, output_surface.get(), |
621 resource_provider.get()); | 621 resource_provider.get()); |
622 } | 622 } |
623 | 623 |
624 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { | 624 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { |
625 public: | 625 public: |
626 LoseContextOnFirstGetContext() {} | 626 LoseContextOnFirstGetContext() {} |
(...skipping 12 matching lines...) Expand all Loading... |
639 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { | 639 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { |
640 FakeOutputSurfaceClient output_surface_client; | 640 FakeOutputSurfaceClient output_surface_client; |
641 std::unique_ptr<OutputSurface> output_surface( | 641 std::unique_ptr<OutputSurface> output_surface( |
642 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( | 642 FakeOutputSurface::Create3d(std::unique_ptr<TestWebGraphicsContext3D>( |
643 new LoseContextOnFirstGetContext))); | 643 new LoseContextOnFirstGetContext))); |
644 CHECK(output_surface->BindToClient(&output_surface_client)); | 644 CHECK(output_surface->BindToClient(&output_surface_client)); |
645 | 645 |
646 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 646 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
647 new TestSharedBitmapManager()); | 647 new TestSharedBitmapManager()); |
648 std::unique_ptr<ResourceProvider> resource_provider = | 648 std::unique_ptr<ResourceProvider> resource_provider = |
649 FakeResourceProvider::Create(output_surface.get(), | 649 FakeResourceProvider::Create(output_surface->context_provider(), |
650 shared_bitmap_manager.get()); | 650 shared_bitmap_manager.get()); |
651 | 651 |
652 RendererSettings settings; | 652 RendererSettings settings; |
653 FakeRendererGL renderer(&settings, output_surface.get(), | 653 FakeRendererGL renderer(&settings, output_surface.get(), |
654 resource_provider.get()); | 654 resource_provider.get()); |
655 } | 655 } |
656 | 656 |
657 class ClearCountingContext : public TestWebGraphicsContext3D { | 657 class ClearCountingContext : public TestWebGraphicsContext3D { |
658 public: | 658 public: |
659 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } | 659 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } |
(...skipping 10 matching lines...) Expand all Loading... |
670 ClearCountingContext* context = context_owned.get(); | 670 ClearCountingContext* context = context_owned.get(); |
671 | 671 |
672 FakeOutputSurfaceClient output_surface_client; | 672 FakeOutputSurfaceClient output_surface_client; |
673 std::unique_ptr<OutputSurface> output_surface( | 673 std::unique_ptr<OutputSurface> output_surface( |
674 FakeOutputSurface::Create3d(std::move(context_owned))); | 674 FakeOutputSurface::Create3d(std::move(context_owned))); |
675 CHECK(output_surface->BindToClient(&output_surface_client)); | 675 CHECK(output_surface->BindToClient(&output_surface_client)); |
676 | 676 |
677 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 677 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
678 new TestSharedBitmapManager()); | 678 new TestSharedBitmapManager()); |
679 std::unique_ptr<ResourceProvider> resource_provider = | 679 std::unique_ptr<ResourceProvider> resource_provider = |
680 FakeResourceProvider::Create(output_surface.get(), | 680 FakeResourceProvider::Create(output_surface->context_provider(), |
681 shared_bitmap_manager.get()); | 681 shared_bitmap_manager.get()); |
682 | 682 |
683 RendererSettings settings; | 683 RendererSettings settings; |
684 FakeRendererGL renderer(&settings, output_surface.get(), | 684 FakeRendererGL renderer(&settings, output_surface.get(), |
685 resource_provider.get()); | 685 resource_provider.get()); |
686 renderer.Initialize(); | 686 renderer.Initialize(); |
687 renderer.SetVisible(true); | 687 renderer.SetVisible(true); |
688 | 688 |
689 gfx::Rect viewport_rect(1, 1); | 689 gfx::Rect viewport_rect(1, 1); |
690 RenderPass* root_pass = | 690 RenderPass* root_pass = |
(...skipping 20 matching lines...) Expand all Loading... |
711 ClearCountingContext* context = context_owned.get(); | 711 ClearCountingContext* context = context_owned.get(); |
712 | 712 |
713 FakeOutputSurfaceClient output_surface_client; | 713 FakeOutputSurfaceClient output_surface_client; |
714 std::unique_ptr<OutputSurface> output_surface( | 714 std::unique_ptr<OutputSurface> output_surface( |
715 FakeOutputSurface::Create3d(std::move(context_owned))); | 715 FakeOutputSurface::Create3d(std::move(context_owned))); |
716 CHECK(output_surface->BindToClient(&output_surface_client)); | 716 CHECK(output_surface->BindToClient(&output_surface_client)); |
717 | 717 |
718 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 718 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
719 new TestSharedBitmapManager()); | 719 new TestSharedBitmapManager()); |
720 std::unique_ptr<ResourceProvider> resource_provider = | 720 std::unique_ptr<ResourceProvider> resource_provider = |
721 FakeResourceProvider::Create(output_surface.get(), | 721 FakeResourceProvider::Create(output_surface->context_provider(), |
722 shared_bitmap_manager.get()); | 722 shared_bitmap_manager.get()); |
723 | 723 |
724 RendererSettings settings; | 724 RendererSettings settings; |
725 FakeRendererGL renderer(&settings, output_surface.get(), | 725 FakeRendererGL renderer(&settings, output_surface.get(), |
726 resource_provider.get()); | 726 resource_provider.get()); |
727 renderer.Initialize(); | 727 renderer.Initialize(); |
728 renderer.SetVisible(true); | 728 renderer.SetVisible(true); |
729 | 729 |
730 gfx::Rect viewport_rect(1, 1); | 730 gfx::Rect viewport_rect(1, 1); |
731 RenderPass* root_pass = | 731 RenderPass* root_pass = |
(...skipping 13 matching lines...) Expand all Loading... |
745 ClearCountingContext* context = context_owned.get(); | 745 ClearCountingContext* context = context_owned.get(); |
746 | 746 |
747 FakeOutputSurfaceClient output_surface_client; | 747 FakeOutputSurfaceClient output_surface_client; |
748 std::unique_ptr<OutputSurface> output_surface( | 748 std::unique_ptr<OutputSurface> output_surface( |
749 FakeOutputSurface::CreateOffscreen(std::move(context_owned))); | 749 FakeOutputSurface::CreateOffscreen(std::move(context_owned))); |
750 CHECK(output_surface->BindToClient(&output_surface_client)); | 750 CHECK(output_surface->BindToClient(&output_surface_client)); |
751 | 751 |
752 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 752 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
753 new TestSharedBitmapManager()); | 753 new TestSharedBitmapManager()); |
754 std::unique_ptr<ResourceProvider> resource_provider = | 754 std::unique_ptr<ResourceProvider> resource_provider = |
755 FakeResourceProvider::Create(output_surface.get(), | 755 FakeResourceProvider::Create(output_surface->context_provider(), |
756 shared_bitmap_manager.get()); | 756 shared_bitmap_manager.get()); |
757 | 757 |
758 RendererSettings settings; | 758 RendererSettings settings; |
759 FakeRendererGL renderer(&settings, output_surface.get(), | 759 FakeRendererGL renderer(&settings, output_surface.get(), |
760 resource_provider.get()); | 760 resource_provider.get()); |
761 renderer.Initialize(); | 761 renderer.Initialize(); |
762 renderer.SetVisible(true); | 762 renderer.SetVisible(true); |
763 | 763 |
764 gfx::Rect viewport_rect(1, 1); | 764 gfx::Rect viewport_rect(1, 1); |
765 AddRenderPass(&render_passes_in_draw_order_, | 765 AddRenderPass(&render_passes_in_draw_order_, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 TextureStateTrackingContext* context = context_owned.get(); | 803 TextureStateTrackingContext* context = context_owned.get(); |
804 | 804 |
805 FakeOutputSurfaceClient output_surface_client; | 805 FakeOutputSurfaceClient output_surface_client; |
806 std::unique_ptr<OutputSurface> output_surface( | 806 std::unique_ptr<OutputSurface> output_surface( |
807 FakeOutputSurface::Create3d(std::move(context_owned))); | 807 FakeOutputSurface::Create3d(std::move(context_owned))); |
808 CHECK(output_surface->BindToClient(&output_surface_client)); | 808 CHECK(output_surface->BindToClient(&output_surface_client)); |
809 | 809 |
810 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 810 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
811 new TestSharedBitmapManager()); | 811 new TestSharedBitmapManager()); |
812 std::unique_ptr<ResourceProvider> resource_provider = | 812 std::unique_ptr<ResourceProvider> resource_provider = |
813 FakeResourceProvider::Create(output_surface.get(), | 813 FakeResourceProvider::Create(output_surface->context_provider(), |
814 shared_bitmap_manager.get()); | 814 shared_bitmap_manager.get()); |
815 | 815 |
816 RendererSettings settings; | 816 RendererSettings settings; |
817 FakeRendererGL renderer(&settings, output_surface.get(), | 817 FakeRendererGL renderer(&settings, output_surface.get(), |
818 resource_provider.get()); | 818 resource_provider.get()); |
819 renderer.Initialize(); | 819 renderer.Initialize(); |
820 renderer.SetVisible(true); | 820 renderer.SetVisible(true); |
821 | 821 |
822 // During initialization we are allowed to set any texture parameters. | 822 // During initialization we are allowed to set any texture parameters. |
823 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); | 823 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
884 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get(); | 884 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get(); |
885 | 885 |
886 FakeOutputSurfaceClient output_surface_client; | 886 FakeOutputSurfaceClient output_surface_client; |
887 std::unique_ptr<OutputSurface> output_surface( | 887 std::unique_ptr<OutputSurface> output_surface( |
888 FakeOutputSurface::Create3d(std::move(mock_context_owned))); | 888 FakeOutputSurface::Create3d(std::move(mock_context_owned))); |
889 CHECK(output_surface->BindToClient(&output_surface_client)); | 889 CHECK(output_surface->BindToClient(&output_surface_client)); |
890 | 890 |
891 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 891 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
892 new TestSharedBitmapManager()); | 892 new TestSharedBitmapManager()); |
893 std::unique_ptr<ResourceProvider> resource_provider = | 893 std::unique_ptr<ResourceProvider> resource_provider = |
894 FakeResourceProvider::Create(output_surface.get(), | 894 FakeResourceProvider::Create(output_surface->context_provider(), |
895 shared_bitmap_manager.get()); | 895 shared_bitmap_manager.get()); |
896 | 896 |
897 RendererSettings settings; | 897 RendererSettings settings; |
898 settings.should_clear_root_render_pass = false; | 898 settings.should_clear_root_render_pass = false; |
899 | 899 |
900 FakeRendererGL renderer(&settings, output_surface.get(), | 900 FakeRendererGL renderer(&settings, output_surface.get(), |
901 resource_provider.get()); | 901 resource_provider.get()); |
902 renderer.Initialize(); | 902 renderer.Initialize(); |
903 renderer.SetVisible(true); | 903 renderer.SetVisible(true); |
904 | 904 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
970 auto gl_owned = base::MakeUnique<ScissorTestOnClearCheckingGLES2Interface>(); | 970 auto gl_owned = base::MakeUnique<ScissorTestOnClearCheckingGLES2Interface>(); |
971 | 971 |
972 FakeOutputSurfaceClient output_surface_client; | 972 FakeOutputSurfaceClient output_surface_client; |
973 std::unique_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( | 973 std::unique_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( |
974 TestContextProvider::Create(std::move(gl_owned)))); | 974 TestContextProvider::Create(std::move(gl_owned)))); |
975 CHECK(output_surface->BindToClient(&output_surface_client)); | 975 CHECK(output_surface->BindToClient(&output_surface_client)); |
976 | 976 |
977 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 977 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
978 new TestSharedBitmapManager()); | 978 new TestSharedBitmapManager()); |
979 std::unique_ptr<ResourceProvider> resource_provider = | 979 std::unique_ptr<ResourceProvider> resource_provider = |
980 FakeResourceProvider::Create(output_surface.get(), | 980 FakeResourceProvider::Create(output_surface->context_provider(), |
981 shared_bitmap_manager.get()); | 981 shared_bitmap_manager.get()); |
982 | 982 |
983 RendererSettings settings; | 983 RendererSettings settings; |
984 FakeRendererGL renderer(&settings, output_surface.get(), | 984 FakeRendererGL renderer(&settings, output_surface.get(), |
985 resource_provider.get()); | 985 resource_provider.get()); |
986 renderer.Initialize(); | 986 renderer.Initialize(); |
987 EXPECT_FALSE(renderer.use_partial_swap()); | 987 EXPECT_FALSE(renderer.use_partial_swap()); |
988 renderer.SetVisible(true); | 988 renderer.SetVisible(true); |
989 | 989 |
990 gfx::Rect viewport_rect(1, 1); | 990 gfx::Rect viewport_rect(1, 1); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1059 | 1059 |
1060 FakeOutputSurfaceClient output_surface_client; | 1060 FakeOutputSurfaceClient output_surface_client; |
1061 std::unique_ptr<NonReshapableOutputSurface> output_surface( | 1061 std::unique_ptr<NonReshapableOutputSurface> output_surface( |
1062 new NonReshapableOutputSurface(std::move(gl_owned))); | 1062 new NonReshapableOutputSurface(std::move(gl_owned))); |
1063 CHECK(output_surface->BindToClient(&output_surface_client)); | 1063 CHECK(output_surface->BindToClient(&output_surface_client)); |
1064 output_surface->set_fixed_size(gfx::Size(100, 100)); | 1064 output_surface->set_fixed_size(gfx::Size(100, 100)); |
1065 | 1065 |
1066 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1066 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
1067 new TestSharedBitmapManager()); | 1067 new TestSharedBitmapManager()); |
1068 std::unique_ptr<ResourceProvider> resource_provider = | 1068 std::unique_ptr<ResourceProvider> resource_provider = |
1069 FakeResourceProvider::Create(output_surface.get(), | 1069 FakeResourceProvider::Create(output_surface->context_provider(), |
1070 shared_bitmap_manager.get()); | 1070 shared_bitmap_manager.get()); |
1071 | 1071 |
1072 RendererSettings settings; | 1072 RendererSettings settings; |
1073 settings.partial_swap_enabled = true; | 1073 settings.partial_swap_enabled = true; |
1074 FakeRendererGL renderer(&settings, output_surface.get(), | 1074 FakeRendererGL renderer(&settings, output_surface.get(), |
1075 resource_provider.get()); | 1075 resource_provider.get()); |
1076 renderer.Initialize(); | 1076 renderer.Initialize(); |
1077 EXPECT_TRUE(renderer.use_partial_swap()); | 1077 EXPECT_TRUE(renderer.use_partial_swap()); |
1078 renderer.SetVisible(true); | 1078 renderer.SetVisible(true); |
1079 | 1079 |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1193 EXPECT_CALL(*gl_owned, Scissor(30, 450, 20, 20)); | 1193 EXPECT_CALL(*gl_owned, Scissor(30, 450, 20, 20)); |
1194 | 1194 |
1195 FakeOutputSurfaceClient output_surface_client; | 1195 FakeOutputSurfaceClient output_surface_client; |
1196 std::unique_ptr<OutputSurface> output_surface( | 1196 std::unique_ptr<OutputSurface> output_surface( |
1197 new NonReshapableOutputSurface(std::move(gl_owned))); | 1197 new NonReshapableOutputSurface(std::move(gl_owned))); |
1198 CHECK(output_surface->BindToClient(&output_surface_client)); | 1198 CHECK(output_surface->BindToClient(&output_surface_client)); |
1199 | 1199 |
1200 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1200 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
1201 new TestSharedBitmapManager()); | 1201 new TestSharedBitmapManager()); |
1202 std::unique_ptr<ResourceProvider> resource_provider = | 1202 std::unique_ptr<ResourceProvider> resource_provider = |
1203 FakeResourceProvider::Create(output_surface.get(), | 1203 FakeResourceProvider::Create(output_surface->context_provider(), |
1204 shared_bitmap_manager.get()); | 1204 shared_bitmap_manager.get()); |
1205 | 1205 |
1206 RendererSettings settings; | 1206 RendererSettings settings; |
1207 FakeRendererGL renderer(&settings, output_surface.get(), | 1207 FakeRendererGL renderer(&settings, output_surface.get(), |
1208 resource_provider.get()); | 1208 resource_provider.get()); |
1209 renderer.Initialize(); | 1209 renderer.Initialize(); |
1210 EXPECT_FALSE(renderer.use_partial_swap()); | 1210 EXPECT_FALSE(renderer.use_partial_swap()); |
1211 renderer.SetVisible(true); | 1211 renderer.SetVisible(true); |
1212 | 1212 |
1213 gfx::Rect device_viewport_rect(10, 10, 100, 100); | 1213 gfx::Rect device_viewport_rect(10, 10, 100, 100); |
(...skipping 17 matching lines...) Expand all Loading... |
1231 // Note: there is one path that will set it to 0, but that is after the render | 1231 // Note: there is one path that will set it to 0, but that is after the render |
1232 // has finished. | 1232 // has finished. |
1233 FakeOutputSurfaceClient output_surface_client; | 1233 FakeOutputSurfaceClient output_surface_client; |
1234 std::unique_ptr<FakeOutputSurface> output_surface( | 1234 std::unique_ptr<FakeOutputSurface> output_surface( |
1235 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); | 1235 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); |
1236 CHECK(output_surface->BindToClient(&output_surface_client)); | 1236 CHECK(output_surface->BindToClient(&output_surface_client)); |
1237 | 1237 |
1238 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1238 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
1239 new TestSharedBitmapManager()); | 1239 new TestSharedBitmapManager()); |
1240 std::unique_ptr<ResourceProvider> resource_provider = | 1240 std::unique_ptr<ResourceProvider> resource_provider = |
1241 FakeResourceProvider::Create(output_surface.get(), | 1241 FakeResourceProvider::Create(output_surface->context_provider(), |
1242 shared_bitmap_manager.get()); | 1242 shared_bitmap_manager.get()); |
1243 | 1243 |
1244 RendererSettings settings; | 1244 RendererSettings settings; |
1245 FakeRendererGL renderer(&settings, output_surface.get(), | 1245 FakeRendererGL renderer(&settings, output_surface.get(), |
1246 resource_provider.get()); | 1246 resource_provider.get()); |
1247 renderer.Initialize(); | 1247 renderer.Initialize(); |
1248 EXPECT_FALSE(renderer.use_partial_swap()); | 1248 EXPECT_FALSE(renderer.use_partial_swap()); |
1249 renderer.SetVisible(true); | 1249 renderer.SetVisible(true); |
1250 | 1250 |
1251 gfx::Rect device_viewport_rect(0, 0, 100, 100); | 1251 gfx::Rect device_viewport_rect(0, 0, 100, 100); |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 }; | 1617 }; |
1618 | 1618 |
1619 class MockOutputSurfaceTest : public GLRendererTest { | 1619 class MockOutputSurfaceTest : public GLRendererTest { |
1620 protected: | 1620 protected: |
1621 virtual void SetUp() { | 1621 virtual void SetUp() { |
1622 FakeOutputSurfaceClient output_surface_client_; | 1622 FakeOutputSurfaceClient output_surface_client_; |
1623 CHECK(output_surface_.BindToClient(&output_surface_client_)); | 1623 CHECK(output_surface_.BindToClient(&output_surface_client_)); |
1624 | 1624 |
1625 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 1625 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
1626 resource_provider_ = FakeResourceProvider::Create( | 1626 resource_provider_ = FakeResourceProvider::Create( |
1627 &output_surface_, shared_bitmap_manager_.get()); | 1627 output_surface_.context_provider(), shared_bitmap_manager_.get()); |
1628 | 1628 |
1629 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, | 1629 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, |
1630 resource_provider_.get())); | 1630 resource_provider_.get())); |
1631 renderer_->Initialize(); | 1631 renderer_->Initialize(); |
1632 | 1632 |
1633 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); | 1633 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); |
1634 renderer_->SetVisible(true); | 1634 renderer_->SetVisible(true); |
1635 } | 1635 } |
1636 | 1636 |
1637 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 1637 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1773 | 1773 |
1774 TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { | 1774 TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { |
1775 FakeOutputSurfaceClient output_surface_client; | 1775 FakeOutputSurfaceClient output_surface_client; |
1776 std::unique_ptr<FakeOutputSurface> output_surface( | 1776 std::unique_ptr<FakeOutputSurface> output_surface( |
1777 FakeOutputSurface::Create3d()); | 1777 FakeOutputSurface::Create3d()); |
1778 CHECK(output_surface->BindToClient(&output_surface_client)); | 1778 CHECK(output_surface->BindToClient(&output_surface_client)); |
1779 | 1779 |
1780 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1780 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
1781 new TestSharedBitmapManager()); | 1781 new TestSharedBitmapManager()); |
1782 std::unique_ptr<ResourceProvider> resource_provider = | 1782 std::unique_ptr<ResourceProvider> resource_provider = |
1783 FakeResourceProvider::Create(output_surface.get(), | 1783 FakeResourceProvider::Create(output_surface->context_provider(), |
1784 shared_bitmap_manager.get()); | 1784 shared_bitmap_manager.get()); |
1785 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( | 1785 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( |
1786 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); | 1786 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); |
1787 | 1787 |
1788 RendererSettings settings; | 1788 RendererSettings settings; |
1789 FakeRendererGL renderer(&settings, output_surface.get(), | 1789 FakeRendererGL renderer(&settings, output_surface.get(), |
1790 resource_provider.get(), mailbox_deleter.get()); | 1790 resource_provider.get(), mailbox_deleter.get()); |
1791 renderer.Initialize(); | 1791 renderer.Initialize(); |
1792 renderer.SetVisible(true); | 1792 renderer.SetVisible(true); |
1793 | 1793 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1930 &MockOverlayScheduler::Schedule, base::Unretained(&overlay_scheduler))); | 1930 &MockOverlayScheduler::Schedule, base::Unretained(&overlay_scheduler))); |
1931 | 1931 |
1932 FakeOutputSurfaceClient output_surface_client; | 1932 FakeOutputSurfaceClient output_surface_client; |
1933 std::unique_ptr<OutputSurface> output_surface( | 1933 std::unique_ptr<OutputSurface> output_surface( |
1934 FakeOutputSurface::Create3d(context_provider)); | 1934 FakeOutputSurface::Create3d(context_provider)); |
1935 CHECK(output_surface->BindToClient(&output_surface_client)); | 1935 CHECK(output_surface->BindToClient(&output_surface_client)); |
1936 | 1936 |
1937 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1937 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
1938 new TestSharedBitmapManager()); | 1938 new TestSharedBitmapManager()); |
1939 std::unique_ptr<ResourceProvider> resource_provider = | 1939 std::unique_ptr<ResourceProvider> resource_provider = |
1940 FakeResourceProvider::Create(output_surface.get(), | 1940 FakeResourceProvider::Create(output_surface->context_provider(), |
1941 shared_bitmap_manager.get()); | 1941 shared_bitmap_manager.get()); |
1942 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( | 1942 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( |
1943 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); | 1943 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); |
1944 | 1944 |
1945 RendererSettings settings; | 1945 RendererSettings settings; |
1946 FakeRendererGL renderer(&settings, output_surface.get(), | 1946 FakeRendererGL renderer(&settings, output_surface.get(), |
1947 resource_provider.get(), mailbox_deleter.get()); | 1947 resource_provider.get(), mailbox_deleter.get()); |
1948 renderer.Initialize(); | 1948 renderer.Initialize(); |
1949 renderer.SetVisible(true); | 1949 renderer.SetVisible(true); |
1950 | 1950 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2011 void RunTest(bool partial_swap) { | 2011 void RunTest(bool partial_swap) { |
2012 auto gl_owned = base::MakeUnique<PartialSwapMockGLES2Interface>(); | 2012 auto gl_owned = base::MakeUnique<PartialSwapMockGLES2Interface>(); |
2013 auto* gl = gl_owned.get(); | 2013 auto* gl = gl_owned.get(); |
2014 | 2014 |
2015 FakeOutputSurfaceClient output_surface_client; | 2015 FakeOutputSurfaceClient output_surface_client; |
2016 std::unique_ptr<FakeOutputSurface> output_surface( | 2016 std::unique_ptr<FakeOutputSurface> output_surface( |
2017 FakeOutputSurface::Create3d(std::move(gl_owned))); | 2017 FakeOutputSurface::Create3d(std::move(gl_owned))); |
2018 CHECK(output_surface->BindToClient(&output_surface_client)); | 2018 CHECK(output_surface->BindToClient(&output_surface_client)); |
2019 | 2019 |
2020 std::unique_ptr<ResourceProvider> resource_provider = | 2020 std::unique_ptr<ResourceProvider> resource_provider = |
2021 FakeResourceProvider::Create(output_surface.get(), nullptr); | 2021 FakeResourceProvider::Create(output_surface->context_provider(), |
| 2022 nullptr); |
2022 | 2023 |
2023 RendererSettings settings; | 2024 RendererSettings settings; |
2024 settings.partial_swap_enabled = partial_swap; | 2025 settings.partial_swap_enabled = partial_swap; |
2025 FakeRendererGL renderer(&settings, output_surface.get(), | 2026 FakeRendererGL renderer(&settings, output_surface.get(), |
2026 resource_provider.get()); | 2027 resource_provider.get()); |
2027 renderer.Initialize(); | 2028 renderer.Initialize(); |
2028 EXPECT_EQ(partial_swap, renderer.use_partial_swap()); | 2029 EXPECT_EQ(partial_swap, renderer.use_partial_swap()); |
2029 renderer.SetVisible(true); | 2030 renderer.SetVisible(true); |
2030 | 2031 |
2031 gfx::Rect viewport_rect(100, 100); | 2032 gfx::Rect viewport_rect(100, 100); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2088 void(bool aggressively_free_resources)); | 2089 void(bool aggressively_free_resources)); |
2089 }; | 2090 }; |
2090 | 2091 |
2091 void SetUp() override { | 2092 void SetUp() override { |
2092 auto context_support = base::MakeUnique<MockContextSupport>(); | 2093 auto context_support = base::MakeUnique<MockContextSupport>(); |
2093 context_support_ptr_ = context_support.get(); | 2094 context_support_ptr_ = context_support.get(); |
2094 auto context_provider = TestContextProvider::Create( | 2095 auto context_provider = TestContextProvider::Create( |
2095 TestWebGraphicsContext3D::Create(), std::move(context_support)); | 2096 TestWebGraphicsContext3D::Create(), std::move(context_support)); |
2096 output_surface_ = FakeOutputSurface::Create3d(std::move(context_provider)); | 2097 output_surface_ = FakeOutputSurface::Create3d(std::move(context_provider)); |
2097 output_surface_->BindToClient(&output_surface_client_); | 2098 output_surface_->BindToClient(&output_surface_client_); |
2098 resource_provider_ = | 2099 resource_provider_ = FakeResourceProvider::Create( |
2099 FakeResourceProvider::Create(output_surface_.get(), nullptr); | 2100 output_surface_->context_provider(), nullptr); |
2100 renderer_ = | 2101 renderer_ = |
2101 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), | 2102 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), |
2102 resource_provider_.get(), nullptr, 0); | 2103 resource_provider_.get(), nullptr, 0); |
2103 renderer_->Initialize(); | 2104 renderer_->Initialize(); |
2104 } | 2105 } |
2105 | 2106 |
2106 RendererSettings settings_; | 2107 RendererSettings settings_; |
2107 FakeOutputSurfaceClient output_surface_client_; | 2108 FakeOutputSurfaceClient output_surface_client_; |
2108 MockContextSupport* context_support_ptr_; | 2109 MockContextSupport* context_support_ptr_; |
2109 std::unique_ptr<OutputSurface> output_surface_; | 2110 std::unique_ptr<OutputSurface> output_surface_; |
2110 std::unique_ptr<ResourceProvider> resource_provider_; | 2111 std::unique_ptr<ResourceProvider> resource_provider_; |
2111 std::unique_ptr<GLRenderer> renderer_; | 2112 std::unique_ptr<GLRenderer> renderer_; |
2112 }; | 2113 }; |
2113 | 2114 |
2114 TEST_F(GLRendererWithMockContextTest, | 2115 TEST_F(GLRendererWithMockContextTest, |
2115 ContextPurgedWhenRendererBecomesInvisible) { | 2116 ContextPurgedWhenRendererBecomesInvisible) { |
2116 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(false)); | 2117 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(false)); |
2117 renderer_->SetVisible(true); | 2118 renderer_->SetVisible(true); |
2118 Mock::VerifyAndClearExpectations(context_support_ptr_); | 2119 Mock::VerifyAndClearExpectations(context_support_ptr_); |
2119 | 2120 |
2120 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); | 2121 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); |
2121 renderer_->SetVisible(false); | 2122 renderer_->SetVisible(false); |
2122 Mock::VerifyAndClearExpectations(context_support_ptr_); | 2123 Mock::VerifyAndClearExpectations(context_support_ptr_); |
2123 } | 2124 } |
2124 | 2125 |
2125 } // namespace | 2126 } // namespace |
2126 } // namespace cc | 2127 } // namespace cc |
OLD | NEW |