| 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 |