| 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 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 | 138 |
| 139 void TestBasicShaders() { | 139 void TestBasicShaders() { |
| 140 EXPECT_PROGRAM_VALID(renderer()->GetDebugBorderProgram()); | 140 EXPECT_PROGRAM_VALID(renderer()->GetDebugBorderProgram()); |
| 141 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgram()); | 141 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgram()); |
| 142 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgramAA()); | 142 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgramAA()); |
| 143 } | 143 } |
| 144 | 144 |
| 145 void TestShadersWithPrecision(TexCoordPrecision precision) { | 145 void TestShadersWithPrecision(TexCoordPrecision precision) { |
| 146 // This program uses external textures and sampler, so it won't compile | 146 // This program uses external textures and sampler, so it won't compile |
| 147 // everywhere. | 147 // everywhere. |
| 148 if (renderer()->Capabilities().using_egl_image) | 148 if (context_provider()->ContextCapabilities().egl_image_external) |
| 149 EXPECT_PROGRAM_VALID(renderer()->GetVideoStreamTextureProgram(precision)); | 149 EXPECT_PROGRAM_VALID(renderer()->GetVideoStreamTextureProgram(precision)); |
| 150 } | 150 } |
| 151 | 151 |
| 152 void TestShadersWithPrecisionAndBlend(TexCoordPrecision precision, | 152 void TestShadersWithPrecisionAndBlend(TexCoordPrecision precision, |
| 153 BlendMode blend_mode) { | 153 BlendMode blend_mode) { |
| 154 EXPECT_PROGRAM_VALID( | 154 EXPECT_PROGRAM_VALID( |
| 155 renderer()->GetRenderPassProgram(precision, blend_mode)); | 155 renderer()->GetRenderPassProgram(precision, blend_mode)); |
| 156 EXPECT_PROGRAM_VALID( | 156 EXPECT_PROGRAM_VALID( |
| 157 renderer()->GetRenderPassProgramAA(precision, blend_mode)); | 157 renderer()->GetRenderPassProgramAA(precision, blend_mode)); |
| 158 } | 158 } |
| 159 | 159 |
| 160 void TestShadersWithPrecisionAndSampler(TexCoordPrecision precision, | 160 void TestShadersWithPrecisionAndSampler(TexCoordPrecision precision, |
| 161 SamplerType sampler) { | 161 SamplerType sampler) { |
| 162 if (!renderer()->Capabilities().using_egl_image && | 162 if (!context_provider()->ContextCapabilities().egl_image_external && |
| 163 sampler == SAMPLER_TYPE_EXTERNAL_OES) { | 163 sampler == SAMPLER_TYPE_EXTERNAL_OES) { |
| 164 // This will likely be hit in tests due to usage of osmesa. | 164 // This will likely be hit in tests due to usage of osmesa. |
| 165 return; | 165 return; |
| 166 } | 166 } |
| 167 | 167 |
| 168 EXPECT_PROGRAM_VALID(renderer()->GetTextureProgram(precision, sampler)); | 168 EXPECT_PROGRAM_VALID(renderer()->GetTextureProgram(precision, sampler)); |
| 169 EXPECT_PROGRAM_VALID( | 169 EXPECT_PROGRAM_VALID( |
| 170 renderer()->GetNonPremultipliedTextureProgram(precision, sampler)); | 170 renderer()->GetNonPremultipliedTextureProgram(precision, sampler)); |
| 171 EXPECT_PROGRAM_VALID( | 171 EXPECT_PROGRAM_VALID( |
| 172 renderer()->GetTextureBackgroundProgram(precision, sampler)); | 172 renderer()->GetTextureBackgroundProgram(precision, sampler)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 189 renderer()->GetVideoYUVProgram(precision, sampler, j, k, l)); | 189 renderer()->GetVideoYUVProgram(precision, sampler, j, k, l)); |
| 190 } | 190 } |
| 191 } | 191 } |
| 192 } | 192 } |
| 193 } | 193 } |
| 194 | 194 |
| 195 void TestShadersWithMasks(TexCoordPrecision precision, | 195 void TestShadersWithMasks(TexCoordPrecision precision, |
| 196 SamplerType sampler, | 196 SamplerType sampler, |
| 197 BlendMode blend_mode, | 197 BlendMode blend_mode, |
| 198 bool mask_for_background) { | 198 bool mask_for_background) { |
| 199 if (!renderer()->Capabilities().using_egl_image && | 199 if (!context_provider()->ContextCapabilities().egl_image_external && |
| 200 sampler == SAMPLER_TYPE_EXTERNAL_OES) { | 200 sampler == SAMPLER_TYPE_EXTERNAL_OES) { |
| 201 // This will likely be hit in tests due to usage of osmesa. | 201 // This will likely be hit in tests due to usage of osmesa. |
| 202 return; | 202 return; |
| 203 } | 203 } |
| 204 | 204 |
| 205 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgram( | 205 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgram( |
| 206 precision, sampler, blend_mode, mask_for_background)); | 206 precision, sampler, blend_mode, mask_for_background)); |
| 207 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgramAA( | 207 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgramAA( |
| 208 precision, sampler, blend_mode, mask_for_background)); | 208 precision, sampler, blend_mode, mask_for_background)); |
| 209 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskColorMatrixProgramAA( | 209 EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskColorMatrixProgramAA( |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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_.get(), shared_bitmap_manager_.get()); |
| 355 renderer_ = base::WrapUnique(new FakeRendererGL( | 355 renderer_ = base::WrapUnique(new FakeRendererGL( |
| 356 &settings_, output_surface_.get(), resource_provider_.get())); | 356 &settings_, output_surface_.get(), resource_provider_.get())); |
| 357 renderer_->Initialize(); |
| 357 renderer_->SetVisible(true); | 358 renderer_->SetVisible(true); |
| 358 } | 359 } |
| 359 | 360 |
| 360 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 361 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
| 361 | 362 |
| 362 RendererSettings settings_; | 363 RendererSettings settings_; |
| 363 FakeOutputSurfaceClient output_surface_client_; | 364 FakeOutputSurfaceClient output_surface_client_; |
| 364 std::unique_ptr<FakeOutputSurface> output_surface_; | 365 std::unique_ptr<FakeOutputSurface> output_surface_; |
| 365 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; | 366 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; |
| 366 std::unique_ptr<ResourceProvider> resource_provider_; | 367 std::unique_ptr<ResourceProvider> resource_provider_; |
| 367 std::unique_ptr<FakeRendererGL> renderer_; | 368 std::unique_ptr<FakeRendererGL> renderer_; |
| 368 }; | 369 }; |
| 369 | 370 |
| 370 // Closing the namespace here so that GLRendererShaderTest can take advantage | 371 // Closing the namespace here so that GLRendererShaderTest can take advantage |
| 371 // 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 |
| 372 // declared above it. | 373 // declared above it. |
| 373 } // namespace | 374 } // namespace |
| 374 | 375 |
| 375 class GLRendererShaderTest : public GLRendererTest { | 376 class GLRendererShaderTest : public GLRendererTest { |
| 376 protected: | 377 protected: |
| 377 GLRendererShaderTest() { | 378 GLRendererShaderTest() { |
| 378 output_surface_ = FakeOutputSurface::Create3d(); | 379 output_surface_ = FakeOutputSurface::Create3d(); |
| 379 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 380 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
| 380 | 381 |
| 381 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 382 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
| 382 resource_provider_ = FakeResourceProvider::Create( | 383 resource_provider_ = FakeResourceProvider::Create( |
| 383 output_surface_.get(), shared_bitmap_manager_.get()); | 384 output_surface_.get(), shared_bitmap_manager_.get()); |
| 384 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), | 385 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), |
| 385 resource_provider_.get())); | 386 resource_provider_.get())); |
| 387 renderer_->Initialize(); |
| 386 renderer_->SetVisible(true); | 388 renderer_->SetVisible(true); |
| 387 } | 389 } |
| 388 | 390 |
| 389 void TestRenderPassProgram(TexCoordPrecision precision, | 391 void TestRenderPassProgram(TexCoordPrecision precision, |
| 390 BlendMode blend_mode) { | 392 BlendMode blend_mode) { |
| 391 EXPECT_PROGRAM_VALID( | 393 EXPECT_PROGRAM_VALID( |
| 392 &renderer_->render_pass_program_[precision][blend_mode]); | 394 &renderer_->render_pass_program_[precision][blend_mode]); |
| 393 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(), | 395 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(), |
| 394 renderer_->program_shadow_); | 396 renderer_->program_shadow_); |
| 395 } | 397 } |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 | 676 |
| 675 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 677 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 676 new TestSharedBitmapManager()); | 678 new TestSharedBitmapManager()); |
| 677 std::unique_ptr<ResourceProvider> resource_provider = | 679 std::unique_ptr<ResourceProvider> resource_provider = |
| 678 FakeResourceProvider::Create(output_surface.get(), | 680 FakeResourceProvider::Create(output_surface.get(), |
| 679 shared_bitmap_manager.get()); | 681 shared_bitmap_manager.get()); |
| 680 | 682 |
| 681 RendererSettings settings; | 683 RendererSettings settings; |
| 682 FakeRendererGL renderer(&settings, output_surface.get(), | 684 FakeRendererGL renderer(&settings, output_surface.get(), |
| 683 resource_provider.get()); | 685 resource_provider.get()); |
| 686 renderer.Initialize(); |
| 684 renderer.SetVisible(true); | 687 renderer.SetVisible(true); |
| 685 | 688 |
| 686 gfx::Rect viewport_rect(1, 1); | 689 gfx::Rect viewport_rect(1, 1); |
| 687 RenderPass* root_pass = | 690 RenderPass* root_pass = |
| 688 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), | 691 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), |
| 689 viewport_rect, gfx::Transform()); | 692 viewport_rect, gfx::Transform()); |
| 690 root_pass->has_transparent_background = false; | 693 root_pass->has_transparent_background = false; |
| 691 | 694 |
| 692 // On DEBUG builds, render passes with opaque background clear to blue to | 695 // On DEBUG builds, render passes with opaque background clear to blue to |
| 693 // easily see regions that were not drawn on the screen. | 696 // easily see regions that were not drawn on the screen. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 714 | 717 |
| 715 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 718 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 716 new TestSharedBitmapManager()); | 719 new TestSharedBitmapManager()); |
| 717 std::unique_ptr<ResourceProvider> resource_provider = | 720 std::unique_ptr<ResourceProvider> resource_provider = |
| 718 FakeResourceProvider::Create(output_surface.get(), | 721 FakeResourceProvider::Create(output_surface.get(), |
| 719 shared_bitmap_manager.get()); | 722 shared_bitmap_manager.get()); |
| 720 | 723 |
| 721 RendererSettings settings; | 724 RendererSettings settings; |
| 722 FakeRendererGL renderer(&settings, output_surface.get(), | 725 FakeRendererGL renderer(&settings, output_surface.get(), |
| 723 resource_provider.get()); | 726 resource_provider.get()); |
| 727 renderer.Initialize(); |
| 724 renderer.SetVisible(true); | 728 renderer.SetVisible(true); |
| 725 | 729 |
| 726 gfx::Rect viewport_rect(1, 1); | 730 gfx::Rect viewport_rect(1, 1); |
| 727 RenderPass* root_pass = | 731 RenderPass* root_pass = |
| 728 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), | 732 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), |
| 729 viewport_rect, gfx::Transform()); | 733 viewport_rect, gfx::Transform()); |
| 730 root_pass->has_transparent_background = true; | 734 root_pass->has_transparent_background = true; |
| 731 | 735 |
| 732 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); | 736 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); |
| 733 EXPECT_CALL(*context, clear(_)).Times(1); | 737 EXPECT_CALL(*context, clear(_)).Times(1); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 747 | 751 |
| 748 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 752 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 749 new TestSharedBitmapManager()); | 753 new TestSharedBitmapManager()); |
| 750 std::unique_ptr<ResourceProvider> resource_provider = | 754 std::unique_ptr<ResourceProvider> resource_provider = |
| 751 FakeResourceProvider::Create(output_surface.get(), | 755 FakeResourceProvider::Create(output_surface.get(), |
| 752 shared_bitmap_manager.get()); | 756 shared_bitmap_manager.get()); |
| 753 | 757 |
| 754 RendererSettings settings; | 758 RendererSettings settings; |
| 755 FakeRendererGL renderer(&settings, output_surface.get(), | 759 FakeRendererGL renderer(&settings, output_surface.get(), |
| 756 resource_provider.get()); | 760 resource_provider.get()); |
| 761 renderer.Initialize(); |
| 757 renderer.SetVisible(true); | 762 renderer.SetVisible(true); |
| 758 | 763 |
| 759 gfx::Rect viewport_rect(1, 1); | 764 gfx::Rect viewport_rect(1, 1); |
| 760 AddRenderPass(&render_passes_in_draw_order_, | 765 AddRenderPass(&render_passes_in_draw_order_, |
| 761 RenderPassId(1, 0), | 766 RenderPassId(1, 0), |
| 762 viewport_rect, | 767 viewport_rect, |
| 763 gfx::Transform()); | 768 gfx::Transform()); |
| 764 | 769 |
| 765 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) | 770 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) |
| 766 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0))) | 771 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0))) |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 | 809 |
| 805 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 810 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 806 new TestSharedBitmapManager()); | 811 new TestSharedBitmapManager()); |
| 807 std::unique_ptr<ResourceProvider> resource_provider = | 812 std::unique_ptr<ResourceProvider> resource_provider = |
| 808 FakeResourceProvider::Create(output_surface.get(), | 813 FakeResourceProvider::Create(output_surface.get(), |
| 809 shared_bitmap_manager.get()); | 814 shared_bitmap_manager.get()); |
| 810 | 815 |
| 811 RendererSettings settings; | 816 RendererSettings settings; |
| 812 FakeRendererGL renderer(&settings, output_surface.get(), | 817 FakeRendererGL renderer(&settings, output_surface.get(), |
| 813 resource_provider.get()); | 818 resource_provider.get()); |
| 819 renderer.Initialize(); |
| 814 renderer.SetVisible(true); | 820 renderer.SetVisible(true); |
| 815 | 821 |
| 816 // During initialization we are allowed to set any texture parameters. | 822 // During initialization we are allowed to set any texture parameters. |
| 817 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); | 823 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); |
| 818 | 824 |
| 819 RenderPass* root_pass = | 825 RenderPass* root_pass = |
| 820 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1), | 826 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1), |
| 821 gfx::Rect(100, 100), gfx::Transform()); | 827 gfx::Rect(100, 100), gfx::Transform()); |
| 822 gpu::SyncToken mailbox_sync_token; | 828 gpu::SyncToken mailbox_sync_token; |
| 823 AddOneOfEveryQuadType(root_pass, resource_provider.get(), RenderPassId(0, 0), | 829 AddOneOfEveryQuadType(root_pass, resource_provider.get(), RenderPassId(0, 0), |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 new TestSharedBitmapManager()); | 892 new TestSharedBitmapManager()); |
| 887 std::unique_ptr<ResourceProvider> resource_provider = | 893 std::unique_ptr<ResourceProvider> resource_provider = |
| 888 FakeResourceProvider::Create(output_surface.get(), | 894 FakeResourceProvider::Create(output_surface.get(), |
| 889 shared_bitmap_manager.get()); | 895 shared_bitmap_manager.get()); |
| 890 | 896 |
| 891 RendererSettings settings; | 897 RendererSettings settings; |
| 892 settings.should_clear_root_render_pass = false; | 898 settings.should_clear_root_render_pass = false; |
| 893 | 899 |
| 894 FakeRendererGL renderer(&settings, output_surface.get(), | 900 FakeRendererGL renderer(&settings, output_surface.get(), |
| 895 resource_provider.get()); | 901 resource_provider.get()); |
| 902 renderer.Initialize(); |
| 896 renderer.SetVisible(true); | 903 renderer.SetVisible(true); |
| 897 | 904 |
| 898 gfx::Rect viewport_rect(10, 10); | 905 gfx::Rect viewport_rect(10, 10); |
| 899 | 906 |
| 900 RenderPassId child_pass_id(2, 0); | 907 RenderPassId child_pass_id(2, 0); |
| 901 RenderPass* child_pass = | 908 RenderPass* child_pass = |
| 902 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect, | 909 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect, |
| 903 gfx::Transform()); | 910 gfx::Transform()); |
| 904 AddQuad(child_pass, viewport_rect, SK_ColorBLUE); | 911 AddQuad(child_pass, viewport_rect, SK_ColorBLUE); |
| 905 | 912 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 969 | 976 |
| 970 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 977 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 971 new TestSharedBitmapManager()); | 978 new TestSharedBitmapManager()); |
| 972 std::unique_ptr<ResourceProvider> resource_provider = | 979 std::unique_ptr<ResourceProvider> resource_provider = |
| 973 FakeResourceProvider::Create(output_surface.get(), | 980 FakeResourceProvider::Create(output_surface.get(), |
| 974 shared_bitmap_manager.get()); | 981 shared_bitmap_manager.get()); |
| 975 | 982 |
| 976 RendererSettings settings; | 983 RendererSettings settings; |
| 977 FakeRendererGL renderer(&settings, output_surface.get(), | 984 FakeRendererGL renderer(&settings, output_surface.get(), |
| 978 resource_provider.get()); | 985 resource_provider.get()); |
| 979 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); | 986 renderer.Initialize(); |
| 987 EXPECT_FALSE(renderer.use_partial_swap()); |
| 980 renderer.SetVisible(true); | 988 renderer.SetVisible(true); |
| 981 | 989 |
| 982 gfx::Rect viewport_rect(1, 1); | 990 gfx::Rect viewport_rect(1, 1); |
| 983 | 991 |
| 984 gfx::Rect grand_child_rect(25, 25); | 992 gfx::Rect grand_child_rect(25, 25); |
| 985 RenderPassId grand_child_pass_id(3, 0); | 993 RenderPassId grand_child_pass_id(3, 0); |
| 986 RenderPass* grand_child_pass = | 994 RenderPass* grand_child_pass = |
| 987 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id, | 995 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id, |
| 988 grand_child_rect, gfx::Transform()); | 996 grand_child_rect, gfx::Transform()); |
| 989 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); | 997 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1066 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1059 new TestSharedBitmapManager()); | 1067 new TestSharedBitmapManager()); |
| 1060 std::unique_ptr<ResourceProvider> resource_provider = | 1068 std::unique_ptr<ResourceProvider> resource_provider = |
| 1061 FakeResourceProvider::Create(output_surface.get(), | 1069 FakeResourceProvider::Create(output_surface.get(), |
| 1062 shared_bitmap_manager.get()); | 1070 shared_bitmap_manager.get()); |
| 1063 | 1071 |
| 1064 RendererSettings settings; | 1072 RendererSettings settings; |
| 1065 settings.partial_swap_enabled = true; | 1073 settings.partial_swap_enabled = true; |
| 1066 FakeRendererGL renderer(&settings, output_surface.get(), | 1074 FakeRendererGL renderer(&settings, output_surface.get(), |
| 1067 resource_provider.get()); | 1075 resource_provider.get()); |
| 1068 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); | 1076 renderer.Initialize(); |
| 1077 EXPECT_TRUE(renderer.use_partial_swap()); |
| 1069 renderer.SetVisible(true); | 1078 renderer.SetVisible(true); |
| 1070 | 1079 |
| 1071 gfx::Rect viewport_rect(100, 100); | 1080 gfx::Rect viewport_rect(100, 100); |
| 1072 gfx::Rect clip_rect(100, 100); | 1081 gfx::Rect clip_rect(100, 100); |
| 1073 | 1082 |
| 1074 { | 1083 { |
| 1075 // Partial frame, should not discard. | 1084 // Partial frame, should not discard. |
| 1076 RenderPassId root_pass_id(1, 0); | 1085 RenderPassId root_pass_id(1, 0); |
| 1077 RenderPass* root_pass = | 1086 RenderPass* root_pass = |
| 1078 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, | 1087 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1190 | 1199 |
| 1191 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1200 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1192 new TestSharedBitmapManager()); | 1201 new TestSharedBitmapManager()); |
| 1193 std::unique_ptr<ResourceProvider> resource_provider = | 1202 std::unique_ptr<ResourceProvider> resource_provider = |
| 1194 FakeResourceProvider::Create(output_surface.get(), | 1203 FakeResourceProvider::Create(output_surface.get(), |
| 1195 shared_bitmap_manager.get()); | 1204 shared_bitmap_manager.get()); |
| 1196 | 1205 |
| 1197 RendererSettings settings; | 1206 RendererSettings settings; |
| 1198 FakeRendererGL renderer(&settings, output_surface.get(), | 1207 FakeRendererGL renderer(&settings, output_surface.get(), |
| 1199 resource_provider.get()); | 1208 resource_provider.get()); |
| 1200 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); | 1209 renderer.Initialize(); |
| 1210 EXPECT_FALSE(renderer.use_partial_swap()); |
| 1201 renderer.SetVisible(true); | 1211 renderer.SetVisible(true); |
| 1202 | 1212 |
| 1203 gfx::Rect device_viewport_rect(10, 10, 100, 100); | 1213 gfx::Rect device_viewport_rect(10, 10, 100, 100); |
| 1204 gfx::Rect viewport_rect(device_viewport_rect.size()); | 1214 gfx::Rect viewport_rect(device_viewport_rect.size()); |
| 1205 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); | 1215 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); |
| 1206 | 1216 |
| 1207 RenderPassId root_pass_id(1, 0); | 1217 RenderPassId root_pass_id(1, 0); |
| 1208 RenderPass* root_pass = | 1218 RenderPass* root_pass = |
| 1209 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, | 1219 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, |
| 1210 gfx::Transform()); | 1220 gfx::Transform()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1227 | 1237 |
| 1228 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1238 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1229 new TestSharedBitmapManager()); | 1239 new TestSharedBitmapManager()); |
| 1230 std::unique_ptr<ResourceProvider> resource_provider = | 1240 std::unique_ptr<ResourceProvider> resource_provider = |
| 1231 FakeResourceProvider::Create(output_surface.get(), | 1241 FakeResourceProvider::Create(output_surface.get(), |
| 1232 shared_bitmap_manager.get()); | 1242 shared_bitmap_manager.get()); |
| 1233 | 1243 |
| 1234 RendererSettings settings; | 1244 RendererSettings settings; |
| 1235 FakeRendererGL renderer(&settings, output_surface.get(), | 1245 FakeRendererGL renderer(&settings, output_surface.get(), |
| 1236 resource_provider.get()); | 1246 resource_provider.get()); |
| 1237 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); | 1247 renderer.Initialize(); |
| 1248 EXPECT_FALSE(renderer.use_partial_swap()); |
| 1238 renderer.SetVisible(true); | 1249 renderer.SetVisible(true); |
| 1239 | 1250 |
| 1240 gfx::Rect device_viewport_rect(0, 0, 100, 100); | 1251 gfx::Rect device_viewport_rect(0, 0, 100, 100); |
| 1241 gfx::Rect viewport_rect(device_viewport_rect.size()); | 1252 gfx::Rect viewport_rect(device_viewport_rect.size()); |
| 1242 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); | 1253 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); |
| 1243 | 1254 |
| 1244 RenderPassId root_pass_id(1, 0); | 1255 RenderPassId root_pass_id(1, 0); |
| 1245 RenderPass* root_pass = | 1256 RenderPass* root_pass = |
| 1246 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, | 1257 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, |
| 1247 gfx::Transform()); | 1258 gfx::Transform()); |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1610 virtual void SetUp() { | 1621 virtual void SetUp() { |
| 1611 FakeOutputSurfaceClient output_surface_client_; | 1622 FakeOutputSurfaceClient output_surface_client_; |
| 1612 CHECK(output_surface_.BindToClient(&output_surface_client_)); | 1623 CHECK(output_surface_.BindToClient(&output_surface_client_)); |
| 1613 | 1624 |
| 1614 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 1625 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
| 1615 resource_provider_ = FakeResourceProvider::Create( | 1626 resource_provider_ = FakeResourceProvider::Create( |
| 1616 &output_surface_, shared_bitmap_manager_.get()); | 1627 &output_surface_, shared_bitmap_manager_.get()); |
| 1617 | 1628 |
| 1618 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, | 1629 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, |
| 1619 resource_provider_.get())); | 1630 resource_provider_.get())); |
| 1631 renderer_->Initialize(); |
| 1620 | 1632 |
| 1621 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); | 1633 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); |
| 1622 renderer_->SetVisible(true); | 1634 renderer_->SetVisible(true); |
| 1623 } | 1635 } |
| 1624 | 1636 |
| 1625 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 1637 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
| 1626 | 1638 |
| 1627 void DrawFrame(float device_scale_factor, | 1639 void DrawFrame(float device_scale_factor, |
| 1628 const gfx::Rect& device_viewport_rect, | 1640 const gfx::Rect& device_viewport_rect, |
| 1629 bool transparent) { | 1641 bool transparent) { |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1769 new TestSharedBitmapManager()); | 1781 new TestSharedBitmapManager()); |
| 1770 std::unique_ptr<ResourceProvider> resource_provider = | 1782 std::unique_ptr<ResourceProvider> resource_provider = |
| 1771 FakeResourceProvider::Create(output_surface.get(), | 1783 FakeResourceProvider::Create(output_surface.get(), |
| 1772 shared_bitmap_manager.get()); | 1784 shared_bitmap_manager.get()); |
| 1773 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( | 1785 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( |
| 1774 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); | 1786 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); |
| 1775 | 1787 |
| 1776 RendererSettings settings; | 1788 RendererSettings settings; |
| 1777 FakeRendererGL renderer(&settings, output_surface.get(), | 1789 FakeRendererGL renderer(&settings, output_surface.get(), |
| 1778 resource_provider.get(), mailbox_deleter.get()); | 1790 resource_provider.get(), mailbox_deleter.get()); |
| 1791 renderer.Initialize(); |
| 1779 renderer.SetVisible(true); | 1792 renderer.SetVisible(true); |
| 1780 | 1793 |
| 1781 TestOverlayProcessor* processor = | 1794 TestOverlayProcessor* processor = |
| 1782 new TestOverlayProcessor(output_surface.get()); | 1795 new TestOverlayProcessor(output_surface.get()); |
| 1783 processor->Initialize(); | 1796 processor->Initialize(); |
| 1784 renderer.SetOverlayProcessor(processor); | 1797 renderer.SetOverlayProcessor(processor); |
| 1785 std::unique_ptr<TestOverlayProcessor::Validator> validator( | 1798 std::unique_ptr<TestOverlayProcessor::Validator> validator( |
| 1786 new TestOverlayProcessor::Validator); | 1799 new TestOverlayProcessor::Validator); |
| 1787 output_surface->SetOverlayCandidateValidator(validator.get()); | 1800 output_surface->SetOverlayCandidateValidator(validator.get()); |
| 1788 | 1801 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1927 new TestSharedBitmapManager()); | 1940 new TestSharedBitmapManager()); |
| 1928 std::unique_ptr<ResourceProvider> resource_provider = | 1941 std::unique_ptr<ResourceProvider> resource_provider = |
| 1929 FakeResourceProvider::Create(output_surface.get(), | 1942 FakeResourceProvider::Create(output_surface.get(), |
| 1930 shared_bitmap_manager.get()); | 1943 shared_bitmap_manager.get()); |
| 1931 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( | 1944 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( |
| 1932 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); | 1945 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); |
| 1933 | 1946 |
| 1934 RendererSettings settings; | 1947 RendererSettings settings; |
| 1935 FakeRendererGL renderer(&settings, output_surface.get(), | 1948 FakeRendererGL renderer(&settings, output_surface.get(), |
| 1936 resource_provider.get(), mailbox_deleter.get()); | 1949 resource_provider.get(), mailbox_deleter.get()); |
| 1950 renderer.Initialize(); |
| 1937 renderer.SetVisible(true); | 1951 renderer.SetVisible(true); |
| 1938 | 1952 |
| 1939 SingleOverlayOnTopProcessor* processor = | 1953 SingleOverlayOnTopProcessor* processor = |
| 1940 new SingleOverlayOnTopProcessor(output_surface.get()); | 1954 new SingleOverlayOnTopProcessor(output_surface.get()); |
| 1941 processor->Initialize(); | 1955 processor->Initialize(); |
| 1942 renderer.SetOverlayProcessor(processor); | 1956 renderer.SetOverlayProcessor(processor); |
| 1943 | 1957 |
| 1944 gfx::Rect viewport_rect(1, 1); | 1958 gfx::Rect viewport_rect(1, 1); |
| 1945 RenderPass* root_pass = | 1959 RenderPass* root_pass = |
| 1946 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), | 1960 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 FakeOutputSurface::Create3d(std::move(gl_owned))); | 2019 FakeOutputSurface::Create3d(std::move(gl_owned))); |
| 2006 CHECK(output_surface->BindToClient(&output_surface_client)); | 2020 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2007 | 2021 |
| 2008 std::unique_ptr<ResourceProvider> resource_provider = | 2022 std::unique_ptr<ResourceProvider> resource_provider = |
| 2009 FakeResourceProvider::Create(output_surface.get(), nullptr); | 2023 FakeResourceProvider::Create(output_surface.get(), nullptr); |
| 2010 | 2024 |
| 2011 RendererSettings settings; | 2025 RendererSettings settings; |
| 2012 settings.partial_swap_enabled = partial_swap; | 2026 settings.partial_swap_enabled = partial_swap; |
| 2013 FakeRendererGL renderer(&settings, output_surface.get(), | 2027 FakeRendererGL renderer(&settings, output_surface.get(), |
| 2014 resource_provider.get()); | 2028 resource_provider.get()); |
| 2015 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap); | 2029 renderer.Initialize(); |
| 2030 EXPECT_EQ(partial_swap, renderer.use_partial_swap()); |
| 2016 renderer.SetVisible(true); | 2031 renderer.SetVisible(true); |
| 2017 | 2032 |
| 2018 gfx::Rect viewport_rect(100, 100); | 2033 gfx::Rect viewport_rect(100, 100); |
| 2019 gfx::Rect clip_rect(100, 100); | 2034 gfx::Rect clip_rect(100, 100); |
| 2020 | 2035 |
| 2021 { | 2036 { |
| 2022 RenderPassId root_pass_id(1, 0); | 2037 RenderPassId root_pass_id(1, 0); |
| 2023 RenderPass* root_pass = | 2038 RenderPass* root_pass = |
| 2024 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, | 2039 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, |
| 2025 viewport_rect, gfx::Transform()); | 2040 viewport_rect, gfx::Transform()); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2094 auto context_support = base::MakeUnique<MockContextSupport>(); | 2109 auto context_support = base::MakeUnique<MockContextSupport>(); |
| 2095 context_support_ptr_ = context_support.get(); | 2110 context_support_ptr_ = context_support.get(); |
| 2096 context_provider_ = new MockContextProvider(std::move(context_support)); | 2111 context_provider_ = new MockContextProvider(std::move(context_support)); |
| 2097 output_surface_ = FakeOutputSurface::Create3d(context_provider_); | 2112 output_surface_ = FakeOutputSurface::Create3d(context_provider_); |
| 2098 output_surface_->BindToClient(&output_surface_client_); | 2113 output_surface_->BindToClient(&output_surface_client_); |
| 2099 resource_provider_ = | 2114 resource_provider_ = |
| 2100 FakeResourceProvider::Create(output_surface_.get(), nullptr); | 2115 FakeResourceProvider::Create(output_surface_.get(), nullptr); |
| 2101 renderer_ = | 2116 renderer_ = |
| 2102 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), | 2117 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), |
| 2103 resource_provider_.get(), nullptr, 0); | 2118 resource_provider_.get(), nullptr, 0); |
| 2119 renderer_->Initialize(); |
| 2104 } | 2120 } |
| 2105 | 2121 |
| 2106 RendererSettings settings_; | 2122 RendererSettings settings_; |
| 2107 FakeOutputSurfaceClient output_surface_client_; | 2123 FakeOutputSurfaceClient output_surface_client_; |
| 2108 MockContextSupport* context_support_ptr_; | 2124 MockContextSupport* context_support_ptr_; |
| 2109 scoped_refptr<MockContextProvider> context_provider_; | 2125 scoped_refptr<MockContextProvider> context_provider_; |
| 2110 std::unique_ptr<OutputSurface> output_surface_; | 2126 std::unique_ptr<OutputSurface> output_surface_; |
| 2111 std::unique_ptr<ResourceProvider> resource_provider_; | 2127 std::unique_ptr<ResourceProvider> resource_provider_; |
| 2112 std::unique_ptr<GLRenderer> renderer_; | 2128 std::unique_ptr<GLRenderer> renderer_; |
| 2113 }; | 2129 }; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2128 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) | 2144 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) |
| 2129 .WillOnce(Return(false)); | 2145 .WillOnce(Return(false)); |
| 2130 EXPECT_CALL(*context_provider_, DeleteCachedResources()); | 2146 EXPECT_CALL(*context_provider_, DeleteCachedResources()); |
| 2131 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); | 2147 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); |
| 2132 renderer_->SetVisible(false); | 2148 renderer_->SetVisible(false); |
| 2133 Mock::VerifyAndClearExpectations(context_support_ptr_); | 2149 Mock::VerifyAndClearExpectations(context_support_ptr_); |
| 2134 } | 2150 } |
| 2135 | 2151 |
| 2136 } // namespace | 2152 } // namespace |
| 2137 } // namespace cc | 2153 } // namespace cc |
| OLD | NEW |