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

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

Issue 2238693002: Plumb SetVisible from ui::Compositor to the DirectRenderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: setvisible-browser: onemore Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/direct_renderer.cc ('k') | cc/output/overlay_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <set> 9 #include <set>
10 10
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 output_surface_ = 358 output_surface_ =
359 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); 359 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create());
360 CHECK(output_surface_->BindToClient(&output_surface_client_)); 360 CHECK(output_surface_->BindToClient(&output_surface_client_));
361 361
362 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 362 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
363 resource_provider_ = FakeResourceProvider::Create( 363 resource_provider_ = FakeResourceProvider::Create(
364 output_surface_.get(), shared_bitmap_manager_.get()); 364 output_surface_.get(), shared_bitmap_manager_.get());
365 renderer_ = base::WrapUnique( 365 renderer_ = base::WrapUnique(
366 new FakeRendererGL(&renderer_client_, &settings_, output_surface_.get(), 366 new FakeRendererGL(&renderer_client_, &settings_, output_surface_.get(),
367 resource_provider_.get())); 367 resource_provider_.get()));
368 renderer_->SetVisible(true);
368 } 369 }
369 370
370 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 371 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
371 372
372 RendererSettings settings_; 373 RendererSettings settings_;
373 FakeOutputSurfaceClient output_surface_client_; 374 FakeOutputSurfaceClient output_surface_client_;
374 std::unique_ptr<FakeOutputSurface> output_surface_; 375 std::unique_ptr<FakeOutputSurface> output_surface_;
375 FakeRendererClient renderer_client_; 376 FakeRendererClient renderer_client_;
376 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 377 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
377 std::unique_ptr<ResourceProvider> resource_provider_; 378 std::unique_ptr<ResourceProvider> resource_provider_;
(...skipping 11 matching lines...) Expand all
389 output_surface_ = FakeOutputSurface::Create3d(); 390 output_surface_ = FakeOutputSurface::Create3d();
390 CHECK(output_surface_->BindToClient(&output_surface_client_)); 391 CHECK(output_surface_->BindToClient(&output_surface_client_));
391 392
392 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 393 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
393 resource_provider_ = FakeResourceProvider::Create( 394 resource_provider_ = FakeResourceProvider::Create(
394 output_surface_.get(), shared_bitmap_manager_.get()); 395 output_surface_.get(), shared_bitmap_manager_.get());
395 renderer_.reset(new FakeRendererGL(&renderer_client_, 396 renderer_.reset(new FakeRendererGL(&renderer_client_,
396 &settings_, 397 &settings_,
397 output_surface_.get(), 398 output_surface_.get(),
398 resource_provider_.get())); 399 resource_provider_.get()));
400 renderer_->SetVisible(true);
399 } 401 }
400 402
401 void TestRenderPassProgram(TexCoordPrecision precision, 403 void TestRenderPassProgram(TexCoordPrecision precision,
402 BlendMode blend_mode) { 404 BlendMode blend_mode) {
403 EXPECT_PROGRAM_VALID( 405 EXPECT_PROGRAM_VALID(
404 &renderer_->render_pass_program_[precision][blend_mode]); 406 &renderer_->render_pass_program_[precision][blend_mode]);
405 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(), 407 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(),
406 renderer_->program_shadow_); 408 renderer_->program_shadow_);
407 } 409 }
408 410
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 std::unique_ptr<ResourceProvider> resource_provider = 756 std::unique_ptr<ResourceProvider> resource_provider =
755 FakeResourceProvider::Create(output_surface.get(), 757 FakeResourceProvider::Create(output_surface.get(),
756 shared_bitmap_manager.get()); 758 shared_bitmap_manager.get());
757 759
758 RendererSettings settings; 760 RendererSettings settings;
759 FakeRendererClient renderer_client; 761 FakeRendererClient renderer_client;
760 FakeRendererGL renderer(&renderer_client, 762 FakeRendererGL renderer(&renderer_client,
761 &settings, 763 &settings,
762 output_surface.get(), 764 output_surface.get(),
763 resource_provider.get()); 765 resource_provider.get());
766 renderer.SetVisible(true);
764 767
765 gfx::Rect viewport_rect(1, 1); 768 gfx::Rect viewport_rect(1, 1);
766 RenderPass* root_pass = 769 RenderPass* root_pass =
767 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 770 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
768 viewport_rect, gfx::Transform()); 771 viewport_rect, gfx::Transform());
769 root_pass->has_transparent_background = false; 772 root_pass->has_transparent_background = false;
770 773
771 // On DEBUG builds, render passes with opaque background clear to blue to 774 // On DEBUG builds, render passes with opaque background clear to blue to
772 // easily see regions that were not drawn on the screen. 775 // easily see regions that were not drawn on the screen.
773 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) 776 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _))
(...skipping 22 matching lines...) Expand all
796 std::unique_ptr<ResourceProvider> resource_provider = 799 std::unique_ptr<ResourceProvider> resource_provider =
797 FakeResourceProvider::Create(output_surface.get(), 800 FakeResourceProvider::Create(output_surface.get(),
798 shared_bitmap_manager.get()); 801 shared_bitmap_manager.get());
799 802
800 RendererSettings settings; 803 RendererSettings settings;
801 FakeRendererClient renderer_client; 804 FakeRendererClient renderer_client;
802 FakeRendererGL renderer(&renderer_client, 805 FakeRendererGL renderer(&renderer_client,
803 &settings, 806 &settings,
804 output_surface.get(), 807 output_surface.get(),
805 resource_provider.get()); 808 resource_provider.get());
809 renderer.SetVisible(true);
806 810
807 gfx::Rect viewport_rect(1, 1); 811 gfx::Rect viewport_rect(1, 1);
808 RenderPass* root_pass = 812 RenderPass* root_pass =
809 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 813 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
810 viewport_rect, gfx::Transform()); 814 viewport_rect, gfx::Transform());
811 root_pass->has_transparent_background = true; 815 root_pass->has_transparent_background = true;
812 816
813 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); 817 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1);
814 EXPECT_CALL(*context, clear(_)).Times(1); 818 EXPECT_CALL(*context, clear(_)).Times(1);
815 DrawFrame(&renderer, viewport_rect); 819 DrawFrame(&renderer, viewport_rect);
(...skipping 15 matching lines...) Expand all
831 std::unique_ptr<ResourceProvider> resource_provider = 835 std::unique_ptr<ResourceProvider> resource_provider =
832 FakeResourceProvider::Create(output_surface.get(), 836 FakeResourceProvider::Create(output_surface.get(),
833 shared_bitmap_manager.get()); 837 shared_bitmap_manager.get());
834 838
835 RendererSettings settings; 839 RendererSettings settings;
836 FakeRendererClient renderer_client; 840 FakeRendererClient renderer_client;
837 FakeRendererGL renderer(&renderer_client, 841 FakeRendererGL renderer(&renderer_client,
838 &settings, 842 &settings,
839 output_surface.get(), 843 output_surface.get(),
840 resource_provider.get()); 844 resource_provider.get());
845 renderer.SetVisible(true);
841 846
842 gfx::Rect viewport_rect(1, 1); 847 gfx::Rect viewport_rect(1, 1);
843 AddRenderPass(&render_passes_in_draw_order_, 848 AddRenderPass(&render_passes_in_draw_order_,
844 RenderPassId(1, 0), 849 RenderPassId(1, 0),
845 viewport_rect, 850 viewport_rect,
846 gfx::Transform()); 851 gfx::Transform());
847 852
848 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) 853 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _))
849 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0))) 854 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0)))
850 .Times(1); 855 .Times(1);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 std::unique_ptr<ResourceProvider> resource_provider = 895 std::unique_ptr<ResourceProvider> resource_provider =
891 FakeResourceProvider::Create(output_surface.get(), 896 FakeResourceProvider::Create(output_surface.get(),
892 shared_bitmap_manager.get()); 897 shared_bitmap_manager.get());
893 898
894 RendererSettings settings; 899 RendererSettings settings;
895 FakeRendererClient renderer_client; 900 FakeRendererClient renderer_client;
896 FakeRendererGL renderer(&renderer_client, 901 FakeRendererGL renderer(&renderer_client,
897 &settings, 902 &settings,
898 output_surface.get(), 903 output_surface.get(),
899 resource_provider.get()); 904 resource_provider.get());
905 renderer.SetVisible(true);
900 906
901 // During initialization we are allowed to set any texture parameters. 907 // During initialization we are allowed to set any texture parameters.
902 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); 908 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber());
903 909
904 RenderPass* root_pass = 910 RenderPass* root_pass =
905 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1), 911 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1),
906 gfx::Rect(100, 100), gfx::Transform()); 912 gfx::Rect(100, 100), gfx::Transform());
907 gpu::SyncToken mailbox_sync_token; 913 gpu::SyncToken mailbox_sync_token;
908 AddOneOfEveryQuadType(root_pass, resource_provider.get(), RenderPassId(0, 0), 914 AddOneOfEveryQuadType(root_pass, resource_provider.get(), RenderPassId(0, 0),
909 &mailbox_sync_token); 915 &mailbox_sync_token);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 shared_bitmap_manager.get()); 980 shared_bitmap_manager.get());
975 981
976 RendererSettings settings; 982 RendererSettings settings;
977 settings.should_clear_root_render_pass = false; 983 settings.should_clear_root_render_pass = false;
978 984
979 FakeRendererClient renderer_client; 985 FakeRendererClient renderer_client;
980 FakeRendererGL renderer(&renderer_client, 986 FakeRendererGL renderer(&renderer_client,
981 &settings, 987 &settings,
982 output_surface.get(), 988 output_surface.get(),
983 resource_provider.get()); 989 resource_provider.get());
990 renderer.SetVisible(true);
984 991
985 gfx::Rect viewport_rect(10, 10); 992 gfx::Rect viewport_rect(10, 10);
986 993
987 RenderPassId child_pass_id(2, 0); 994 RenderPassId child_pass_id(2, 0);
988 RenderPass* child_pass = 995 RenderPass* child_pass =
989 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect, 996 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect,
990 gfx::Transform()); 997 gfx::Transform());
991 AddQuad(child_pass, viewport_rect, SK_ColorBLUE); 998 AddQuad(child_pass, viewport_rect, SK_ColorBLUE);
992 999
993 RenderPassId root_pass_id(1, 0); 1000 RenderPassId root_pass_id(1, 0);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 FakeResourceProvider::Create(output_surface.get(), 1067 FakeResourceProvider::Create(output_surface.get(),
1061 shared_bitmap_manager.get()); 1068 shared_bitmap_manager.get());
1062 1069
1063 RendererSettings settings; 1070 RendererSettings settings;
1064 FakeRendererClient renderer_client; 1071 FakeRendererClient renderer_client;
1065 FakeRendererGL renderer(&renderer_client, 1072 FakeRendererGL renderer(&renderer_client,
1066 &settings, 1073 &settings,
1067 output_surface.get(), 1074 output_surface.get(),
1068 resource_provider.get()); 1075 resource_provider.get());
1069 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1076 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1077 renderer.SetVisible(true);
1070 1078
1071 gfx::Rect viewport_rect(1, 1); 1079 gfx::Rect viewport_rect(1, 1);
1072 1080
1073 gfx::Rect grand_child_rect(25, 25); 1081 gfx::Rect grand_child_rect(25, 25);
1074 RenderPassId grand_child_pass_id(3, 0); 1082 RenderPassId grand_child_pass_id(3, 0);
1075 RenderPass* grand_child_pass = 1083 RenderPass* grand_child_pass =
1076 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id, 1084 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id,
1077 grand_child_rect, gfx::Transform()); 1085 grand_child_rect, gfx::Transform());
1078 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); 1086 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW);
1079 1087
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1151 shared_bitmap_manager.get()); 1159 shared_bitmap_manager.get());
1152 1160
1153 RendererSettings settings; 1161 RendererSettings settings;
1154 settings.partial_swap_enabled = true; 1162 settings.partial_swap_enabled = true;
1155 FakeRendererClient renderer_client; 1163 FakeRendererClient renderer_client;
1156 FakeRendererGL renderer(&renderer_client, 1164 FakeRendererGL renderer(&renderer_client,
1157 &settings, 1165 &settings,
1158 output_surface.get(), 1166 output_surface.get(),
1159 resource_provider.get()); 1167 resource_provider.get());
1160 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); 1168 EXPECT_TRUE(renderer.Capabilities().using_partial_swap);
1169 renderer.SetVisible(true);
1161 1170
1162 gfx::Rect viewport_rect(100, 100); 1171 gfx::Rect viewport_rect(100, 100);
1163 gfx::Rect clip_rect(100, 100); 1172 gfx::Rect clip_rect(100, 100);
1164 1173
1165 { 1174 {
1166 // Partial frame, should not discard. 1175 // Partial frame, should not discard.
1167 RenderPassId root_pass_id(1, 0); 1176 RenderPassId root_pass_id(1, 0);
1168 RenderPass* root_pass = 1177 RenderPass* root_pass =
1169 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, 1178 AddRenderPass(&render_passes_in_draw_order_, root_pass_id,
1170 viewport_rect, gfx::Transform()); 1179 viewport_rect, gfx::Transform());
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 FakeResourceProvider::Create(output_surface.get(), 1294 FakeResourceProvider::Create(output_surface.get(),
1286 shared_bitmap_manager.get()); 1295 shared_bitmap_manager.get());
1287 1296
1288 RendererSettings settings; 1297 RendererSettings settings;
1289 FakeRendererClient renderer_client; 1298 FakeRendererClient renderer_client;
1290 FakeRendererGL renderer(&renderer_client, 1299 FakeRendererGL renderer(&renderer_client,
1291 &settings, 1300 &settings,
1292 output_surface.get(), 1301 output_surface.get(),
1293 resource_provider.get()); 1302 resource_provider.get());
1294 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1303 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1304 renderer.SetVisible(true);
1295 1305
1296 gfx::Rect device_viewport_rect(10, 10, 100, 100); 1306 gfx::Rect device_viewport_rect(10, 10, 100, 100);
1297 gfx::Rect viewport_rect(device_viewport_rect.size()); 1307 gfx::Rect viewport_rect(device_viewport_rect.size());
1298 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1308 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1299 1309
1300 RenderPassId root_pass_id(1, 0); 1310 RenderPassId root_pass_id(1, 0);
1301 RenderPass* root_pass = 1311 RenderPass* root_pass =
1302 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, 1312 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect,
1303 gfx::Transform()); 1313 gfx::Transform());
1304 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN); 1314 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN);
(...skipping 17 matching lines...) Expand all
1322 new TestSharedBitmapManager()); 1332 new TestSharedBitmapManager());
1323 std::unique_ptr<ResourceProvider> resource_provider = 1333 std::unique_ptr<ResourceProvider> resource_provider =
1324 FakeResourceProvider::Create(output_surface.get(), 1334 FakeResourceProvider::Create(output_surface.get(),
1325 shared_bitmap_manager.get()); 1335 shared_bitmap_manager.get());
1326 1336
1327 RendererSettings settings; 1337 RendererSettings settings;
1328 FakeRendererClient renderer_client; 1338 FakeRendererClient renderer_client;
1329 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 1339 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1330 resource_provider.get()); 1340 resource_provider.get());
1331 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1341 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1342 renderer.SetVisible(true);
1332 1343
1333 gfx::Rect device_viewport_rect(0, 0, 100, 100); 1344 gfx::Rect device_viewport_rect(0, 0, 100, 100);
1334 gfx::Rect viewport_rect(device_viewport_rect.size()); 1345 gfx::Rect viewport_rect(device_viewport_rect.size());
1335 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1346 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1336 1347
1337 RenderPassId root_pass_id(1, 0); 1348 RenderPassId root_pass_id(1, 0);
1338 RenderPass* root_pass = 1349 RenderPass* root_pass =
1339 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect, 1350 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, viewport_rect,
1340 gfx::Transform()); 1351 gfx::Transform());
1341 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN); 1352 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN);
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
1705 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1716 CHECK(output_surface_.BindToClient(&output_surface_client_));
1706 1717
1707 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 1718 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1708 resource_provider_ = FakeResourceProvider::Create( 1719 resource_provider_ = FakeResourceProvider::Create(
1709 &output_surface_, shared_bitmap_manager_.get()); 1720 &output_surface_, shared_bitmap_manager_.get());
1710 1721
1711 renderer_.reset(new FakeRendererGL(&renderer_client_, 1722 renderer_.reset(new FakeRendererGL(&renderer_client_,
1712 &settings_, 1723 &settings_,
1713 &output_surface_, 1724 &output_surface_,
1714 resource_provider_.get())); 1725 resource_provider_.get()));
1726 renderer_->SetVisible(true);
1715 } 1727 }
1716 1728
1717 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 1729 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
1718 1730
1719 void DrawFrame(float device_scale_factor, 1731 void DrawFrame(float device_scale_factor,
1720 const gfx::Rect& device_viewport_rect, 1732 const gfx::Rect& device_viewport_rect,
1721 bool transparent) { 1733 bool transparent) {
1722 RenderPassId render_pass_id(1, 0); 1734 RenderPassId render_pass_id(1, 0);
1723 RenderPass* render_pass = 1735 RenderPass* render_pass =
1724 AddRenderPass(&render_passes_in_draw_order_, render_pass_id, 1736 AddRenderPass(&render_passes_in_draw_order_, render_pass_id,
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1854 std::unique_ptr<ResourceProvider> resource_provider = 1866 std::unique_ptr<ResourceProvider> resource_provider =
1855 FakeResourceProvider::Create(output_surface.get(), 1867 FakeResourceProvider::Create(output_surface.get(),
1856 shared_bitmap_manager.get()); 1868 shared_bitmap_manager.get());
1857 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1869 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
1858 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1870 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
1859 1871
1860 RendererSettings settings; 1872 RendererSettings settings;
1861 FakeRendererClient renderer_client; 1873 FakeRendererClient renderer_client;
1862 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 1874 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1863 resource_provider.get(), mailbox_deleter.get()); 1875 resource_provider.get(), mailbox_deleter.get());
1876 renderer.SetVisible(true);
1864 1877
1865 TestOverlayProcessor* processor = 1878 TestOverlayProcessor* processor =
1866 new TestOverlayProcessor(output_surface.get()); 1879 new TestOverlayProcessor(output_surface.get());
1867 processor->Initialize(); 1880 processor->Initialize();
1868 renderer.SetOverlayProcessor(processor); 1881 renderer.SetOverlayProcessor(processor);
1869 std::unique_ptr<TestOverlayProcessor::Validator> validator( 1882 std::unique_ptr<TestOverlayProcessor::Validator> validator(
1870 new TestOverlayProcessor::Validator); 1883 new TestOverlayProcessor::Validator);
1871 output_surface->SetOverlayCandidateValidator(validator.get()); 1884 output_surface->SetOverlayCandidateValidator(validator.get());
1872 1885
1873 gfx::Rect viewport_rect(1, 1); 1886 gfx::Rect viewport_rect(1, 1);
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
2012 std::unique_ptr<ResourceProvider> resource_provider = 2025 std::unique_ptr<ResourceProvider> resource_provider =
2013 FakeResourceProvider::Create(output_surface.get(), 2026 FakeResourceProvider::Create(output_surface.get(),
2014 shared_bitmap_manager.get()); 2027 shared_bitmap_manager.get());
2015 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 2028 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
2016 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 2029 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
2017 2030
2018 RendererSettings settings; 2031 RendererSettings settings;
2019 FakeRendererClient renderer_client; 2032 FakeRendererClient renderer_client;
2020 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 2033 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2021 resource_provider.get(), mailbox_deleter.get()); 2034 resource_provider.get(), mailbox_deleter.get());
2035 renderer.SetVisible(true);
2022 2036
2023 SingleOverlayOnTopProcessor* processor = 2037 SingleOverlayOnTopProcessor* processor =
2024 new SingleOverlayOnTopProcessor(output_surface.get()); 2038 new SingleOverlayOnTopProcessor(output_surface.get());
2025 processor->Initialize(); 2039 processor->Initialize();
2026 renderer.SetOverlayProcessor(processor); 2040 renderer.SetOverlayProcessor(processor);
2027 2041
2028 gfx::Rect viewport_rect(1, 1); 2042 gfx::Rect viewport_rect(1, 1);
2029 RenderPass* root_pass = 2043 RenderPass* root_pass =
2030 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 2044 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
2031 viewport_rect, gfx::Transform()); 2045 viewport_rect, gfx::Transform());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2091 2105
2092 std::unique_ptr<ResourceProvider> resource_provider = 2106 std::unique_ptr<ResourceProvider> resource_provider =
2093 FakeResourceProvider::Create(output_surface.get(), nullptr); 2107 FakeResourceProvider::Create(output_surface.get(), nullptr);
2094 2108
2095 RendererSettings settings; 2109 RendererSettings settings;
2096 settings.partial_swap_enabled = partial_swap; 2110 settings.partial_swap_enabled = partial_swap;
2097 FakeRendererClient renderer_client; 2111 FakeRendererClient renderer_client;
2098 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 2112 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2099 resource_provider.get()); 2113 resource_provider.get());
2100 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap); 2114 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap);
2115 renderer.SetVisible(true);
2101 2116
2102 gfx::Rect viewport_rect(100, 100); 2117 gfx::Rect viewport_rect(100, 100);
2103 gfx::Rect clip_rect(100, 100); 2118 gfx::Rect clip_rect(100, 100);
2104 2119
2105 { 2120 {
2106 RenderPassId root_pass_id(1, 0); 2121 RenderPassId root_pass_id(1, 0);
2107 RenderPass* root_pass = 2122 RenderPass* root_pass =
2108 AddRenderPass(&render_passes_in_draw_order_, root_pass_id, 2123 AddRenderPass(&render_passes_in_draw_order_, root_pass_id,
2109 viewport_rect, gfx::Transform()); 2124 viewport_rect, gfx::Transform());
2110 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 2125 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2168 class MockContextSupport : public TestContextSupport { 2183 class MockContextSupport : public TestContextSupport {
2169 public: 2184 public:
2170 MockContextSupport() {} 2185 MockContextSupport() {}
2171 MOCK_METHOD1(SetAggressivelyFreeResources, 2186 MOCK_METHOD1(SetAggressivelyFreeResources,
2172 void(bool aggressively_free_resources)); 2187 void(bool aggressively_free_resources));
2173 MOCK_METHOD2(SetClientVisible, void(int client_id, bool is_visible)); 2188 MOCK_METHOD2(SetClientVisible, void(int client_id, bool is_visible));
2174 MOCK_CONST_METHOD0(AnyClientsVisible, bool()); 2189 MOCK_CONST_METHOD0(AnyClientsVisible, bool());
2175 }; 2190 };
2176 2191
2177 void SetUp() override { 2192 void SetUp() override {
2178 auto context_support = base::WrapUnique(new MockContextSupport()); 2193 auto context_support = base::MakeUnique<MockContextSupport>();
2179 context_support_ptr_ = context_support.get(); 2194 context_support_ptr_ = context_support.get();
2180 context_provider_ = new MockContextProvider(std::move(context_support)); 2195 context_provider_ = new MockContextProvider(std::move(context_support));
2181 output_surface_ = FakeOutputSurface::Create3d(context_provider_); 2196 output_surface_ = FakeOutputSurface::Create3d(context_provider_);
2182 output_surface_->BindToClient(&output_surface_client_); 2197 output_surface_->BindToClient(&output_surface_client_);
2183 resource_provider_ = 2198 resource_provider_ =
2184 FakeResourceProvider::Create(output_surface_.get(), nullptr); 2199 FakeResourceProvider::Create(output_surface_.get(), nullptr);
2185 renderer_ = base::WrapUnique(new GLRenderer( 2200 renderer_ = base::MakeUnique<GLRenderer>(
2186 &renderer_client_, &tree_settings_, output_surface_.get(), 2201 &renderer_client_, &settings_, output_surface_.get(),
2187 resource_provider_.get(), NULL, 0)); 2202 resource_provider_.get(), nullptr, 0);
2188 } 2203 }
2189 2204
2190 FakeRendererClient renderer_client_; 2205 FakeRendererClient renderer_client_;
2191 RendererSettings tree_settings_; 2206 RendererSettings settings_;
2192 FakeOutputSurfaceClient output_surface_client_; 2207 FakeOutputSurfaceClient output_surface_client_;
2193 MockContextSupport* context_support_ptr_; 2208 MockContextSupport* context_support_ptr_;
2194 scoped_refptr<MockContextProvider> context_provider_; 2209 scoped_refptr<MockContextProvider> context_provider_;
2195 std::unique_ptr<OutputSurface> output_surface_; 2210 std::unique_ptr<OutputSurface> output_surface_;
2196 std::unique_ptr<ResourceProvider> resource_provider_; 2211 std::unique_ptr<ResourceProvider> resource_provider_;
2197 std::unique_ptr<Renderer> renderer_; 2212 std::unique_ptr<Renderer> renderer_;
2198 }; 2213 };
2199 2214
2200 TEST_F(GLRendererWithMockContextTest, 2215 TEST_F(GLRendererWithMockContextTest,
2201 ContextPurgedWhenRendererBecomesInvisible) { 2216 ContextPurgedWhenRendererBecomesInvisible) {
2202 EXPECT_TRUE(renderer_->visible());
2203
2204 // Ensure our expectations run in order. 2217 // Ensure our expectations run in order.
2205 ::testing::InSequence s; 2218 ::testing::InSequence s;
2206 2219
2207 EXPECT_CALL(*(context_support_ptr_), SetClientVisible(0, false)); 2220 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, true));
2208 EXPECT_CALL(*(context_support_ptr_), AnyClientsVisible()) 2221 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible())
2222 .WillOnce(Return(true));
2223 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(false));
2224 renderer_->SetVisible(true);
2225 Mock::VerifyAndClearExpectations(context_support_ptr_);
2226
2227 EXPECT_TRUE(renderer_->visible());
2228
2229 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, false));
2230 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible())
2209 .WillOnce(Return(false)); 2231 .WillOnce(Return(false));
2210 EXPECT_CALL(*(context_provider_.get()), DeleteCachedResources()); 2232 EXPECT_CALL(*context_provider_, DeleteCachedResources());
2211 EXPECT_CALL(*(context_support_ptr_), SetAggressivelyFreeResources(true)); 2233 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true));
2212 renderer_->SetVisible(false); 2234 renderer_->SetVisible(false);
2213
2214 // Ensure all expectations have been satisfied after the call to SetVisible.
2215 Mock::VerifyAndClearExpectations(context_support_ptr_); 2235 Mock::VerifyAndClearExpectations(context_support_ptr_);
2216 2236
2217 EXPECT_FALSE(renderer_->visible()); 2237 EXPECT_FALSE(renderer_->visible());
2218 } 2238 }
2219 2239
2220 } // namespace 2240 } // namespace
2221 } // namespace cc 2241 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/direct_renderer.cc ('k') | cc/output/overlay_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698