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

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

Issue 1430813002: cc: Fork OverlayCandidate to CALayerOverlay (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master1
Patch Set: Rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/overlay_strategy_all_or_nothing.cc ('k') | cc/test/fake_output_surface.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/base/region.h" 5 #include "cc/base/region.h"
6 #include "cc/base/scoped_ptr_vector.h" 6 #include "cc/base/scoped_ptr_vector.h"
7 #include "cc/output/compositor_frame_metadata.h" 7 #include "cc/output/compositor_frame_metadata.h"
8 #include "cc/output/gl_renderer.h" 8 #include "cc/output/gl_renderer.h"
9 #include "cc/output/output_surface.h" 9 #include "cc/output/output_surface.h"
10 #include "cc/output/output_surface_client.h" 10 #include "cc/output/output_surface_client.h"
11 #include "cc/output/overlay_candidate_validator.h" 11 #include "cc/output/overlay_candidate_validator.h"
12 #include "cc/output/overlay_processor.h" 12 #include "cc/output/overlay_processor.h"
13 #include "cc/output/overlay_strategy_all_or_nothing.h"
14 #include "cc/output/overlay_strategy_sandwich.h" 13 #include "cc/output/overlay_strategy_sandwich.h"
15 #include "cc/output/overlay_strategy_single_on_top.h" 14 #include "cc/output/overlay_strategy_single_on_top.h"
16 #include "cc/output/overlay_strategy_underlay.h" 15 #include "cc/output/overlay_strategy_underlay.h"
17 #include "cc/quads/render_pass.h" 16 #include "cc/quads/render_pass.h"
18 #include "cc/quads/solid_color_draw_quad.h" 17 #include "cc/quads/solid_color_draw_quad.h"
19 #include "cc/quads/stream_video_draw_quad.h" 18 #include "cc/quads/stream_video_draw_quad.h"
20 #include "cc/quads/texture_draw_quad.h" 19 #include "cc/quads/texture_draw_quad.h"
21 #include "cc/resources/resource_provider.h" 20 #include "cc/resources/resource_provider.h"
22 #include "cc/resources/texture_mailbox.h" 21 #include "cc/resources/texture_mailbox.h"
23 #include "cc/test/fake_output_surface_client.h" 22 #include "cc/test/fake_output_surface_client.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 bool lost_resource, 56 bool lost_resource,
58 BlockingTaskRunner* main_thread_task_runner) {} 57 BlockingTaskRunner* main_thread_task_runner) {}
59 58
60 class SingleOverlayValidator : public OverlayCandidateValidator { 59 class SingleOverlayValidator : public OverlayCandidateValidator {
61 public: 60 public:
62 void GetStrategies(OverlayProcessor::StrategyList* strategies) override { 61 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
63 strategies->push_back( 62 strategies->push_back(
64 make_scoped_ptr(new OverlayStrategySingleOnTop(this))); 63 make_scoped_ptr(new OverlayStrategySingleOnTop(this)));
65 strategies->push_back(make_scoped_ptr(new OverlayStrategyUnderlay(this))); 64 strategies->push_back(make_scoped_ptr(new OverlayStrategyUnderlay(this)));
66 } 65 }
66 bool AllowCALayerOverlays() override { return false; }
67 void CheckOverlaySupport(OverlayCandidateList* surfaces) override { 67 void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
68 // We may have 1 or 2 surfaces depending on whether this ran through the 68 // We may have 1 or 2 surfaces depending on whether this ran through the
69 // full renderer and picked up the output surface, or not. 69 // full renderer and picked up the output surface, or not.
70 ASSERT_LE(1U, surfaces->size()); 70 ASSERT_LE(1U, surfaces->size());
71 ASSERT_GE(2U, surfaces->size()); 71 ASSERT_GE(2U, surfaces->size());
72 72
73 OverlayCandidate& candidate = surfaces->back(); 73 OverlayCandidate& candidate = surfaces->back();
74 EXPECT_TRUE(!candidate.use_output_surface_for_resource); 74 EXPECT_TRUE(!candidate.use_output_surface_for_resource);
75 if (candidate.display_rect.width() == 64) { 75 if (candidate.display_rect.width() == 64) {
76 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), candidate.display_rect); 76 EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), candidate.display_rect);
77 } else { 77 } else {
78 EXPECT_NEAR(kOverlayRect.x(), candidate.display_rect.x(), 0.01f); 78 EXPECT_NEAR(kOverlayRect.x(), candidate.display_rect.x(), 0.01f);
79 EXPECT_NEAR(kOverlayRect.y(), candidate.display_rect.y(), 0.01f); 79 EXPECT_NEAR(kOverlayRect.y(), candidate.display_rect.y(), 0.01f);
80 EXPECT_NEAR(kOverlayRect.width(), candidate.display_rect.width(), 0.01f); 80 EXPECT_NEAR(kOverlayRect.width(), candidate.display_rect.width(), 0.01f);
81 EXPECT_NEAR(kOverlayRect.height(), candidate.display_rect.height(), 81 EXPECT_NEAR(kOverlayRect.height(), candidate.display_rect.height(),
82 0.01f); 82 0.01f);
83 } 83 }
84 EXPECT_FLOAT_RECT_EQ(BoundingRect(kUVTopLeft, kUVBottomRight), 84 EXPECT_FLOAT_RECT_EQ(BoundingRect(kUVTopLeft, kUVBottomRight),
85 candidate.uv_rect); 85 candidate.uv_rect);
86 if (!candidate.clip_rect.IsEmpty()) { 86 if (!candidate.clip_rect.IsEmpty()) {
87 EXPECT_EQ(true, candidate.is_clipped); 87 EXPECT_EQ(true, candidate.is_clipped);
88 EXPECT_EQ(kOverlayClipRect, candidate.clip_rect); 88 EXPECT_EQ(kOverlayClipRect, candidate.clip_rect);
89 } 89 }
90 candidate.overlay_handled = true; 90 candidate.overlay_handled = true;
91 } 91 }
92 }; 92 };
93 93
94 class CALayerValidator : public OverlayCandidateValidator {
95 public:
96 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {}
97 bool AllowCALayerOverlays() override { return true; }
98 void CheckOverlaySupport(OverlayCandidateList* surfaces) override {}
99 };
100
94 class SingleOnTopOverlayValidator : public SingleOverlayValidator { 101 class SingleOnTopOverlayValidator : public SingleOverlayValidator {
95 public: 102 public:
96 void GetStrategies(OverlayProcessor::StrategyList* strategies) override { 103 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
97 strategies->push_back( 104 strategies->push_back(
98 make_scoped_ptr(new OverlayStrategySingleOnTop(this))); 105 make_scoped_ptr(new OverlayStrategySingleOnTop(this)));
99 } 106 }
100 }; 107 };
101 108
102 class UnderlayOverlayValidator : public SingleOverlayValidator { 109 class UnderlayOverlayValidator : public SingleOverlayValidator {
103 public: 110 public:
104 void GetStrategies(OverlayProcessor::StrategyList* strategies) override { 111 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
105 strategies->push_back(make_scoped_ptr(new OverlayStrategyUnderlay(this))); 112 strategies->push_back(make_scoped_ptr(new OverlayStrategyUnderlay(this)));
106 } 113 }
107 }; 114 };
108 115
109 class SandwichOverlayValidator : public OverlayCandidateValidator { 116 class SandwichOverlayValidator : public OverlayCandidateValidator {
110 public: 117 public:
111 void GetStrategies(OverlayProcessor::StrategyList* strategies) override { 118 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
112 strategies->push_back(make_scoped_ptr(new OverlayStrategySandwich(this))); 119 strategies->push_back(make_scoped_ptr(new OverlayStrategySandwich(this)));
113 } 120 }
121 bool AllowCALayerOverlays() override { return false; }
114 void CheckOverlaySupport(OverlayCandidateList* surfaces) override { 122 void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
115 for (OverlayCandidate& candidate : *surfaces) 123 for (OverlayCandidate& candidate : *surfaces)
116 candidate.overlay_handled = true; 124 candidate.overlay_handled = true;
117 }
118 };
119
120 class AllOrNothingOverlayValidator : public OverlayCandidateValidator {
121 public:
122 void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
123 strategies->push_back(
124 make_scoped_ptr(new OverlayStrategyAllOrNothing(this)));
125 }
126 void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
127 for (OverlayCandidate& candidate : *surfaces)
128 candidate.overlay_handled = true;
129 } 125 }
130 }; 126 };
131 127
132 class DefaultOverlayProcessor : public OverlayProcessor { 128 class DefaultOverlayProcessor : public OverlayProcessor {
133 public: 129 public:
134 explicit DefaultOverlayProcessor(OutputSurface* surface); 130 explicit DefaultOverlayProcessor(OutputSurface* surface);
135 size_t GetStrategyCount(); 131 size_t GetStrategyCount();
136 }; 132 };
137 133
138 DefaultOverlayProcessor::DefaultOverlayProcessor(OutputSurface* surface) 134 DefaultOverlayProcessor::DefaultOverlayProcessor(OutputSurface* surface)
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 FakeOutputSurfaceClient client_; 359 FakeOutputSurfaceClient client_;
364 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; 360 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
365 scoped_ptr<ResourceProvider> resource_provider_; 361 scoped_ptr<ResourceProvider> resource_provider_;
366 scoped_ptr<OverlayProcessor> overlay_processor_; 362 scoped_ptr<OverlayProcessor> overlay_processor_;
367 gfx::Rect damage_rect_; 363 gfx::Rect damage_rect_;
368 }; 364 };
369 365
370 typedef OverlayTest<SingleOnTopOverlayValidator> SingleOverlayOnTopTest; 366 typedef OverlayTest<SingleOnTopOverlayValidator> SingleOverlayOnTopTest;
371 typedef OverlayTest<UnderlayOverlayValidator> UnderlayTest; 367 typedef OverlayTest<UnderlayOverlayValidator> UnderlayTest;
372 typedef OverlayTest<SandwichOverlayValidator> SandwichTest; 368 typedef OverlayTest<SandwichOverlayValidator> SandwichTest;
373 typedef OverlayTest<AllOrNothingOverlayValidator> AllOrNothingOverlayTest; 369 typedef OverlayTest<CALayerValidator> CALayerOverlayTest;
374 370
375 TEST(OverlayTest, NoOverlaysByDefault) { 371 TEST(OverlayTest, NoOverlaysByDefault) {
376 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create(); 372 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
377 OverlayOutputSurface output_surface(provider); 373 OverlayOutputSurface output_surface(provider);
378 EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator()); 374 EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator());
379 375
380 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator); 376 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator);
381 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL); 377 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
382 } 378 }
383 379
(...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 output_surface_plane.quad_rect_in_target_space = kOverlayRect; 1316 output_surface_plane.quad_rect_in_target_space = kOverlayRect;
1321 output_surface_plane.use_output_surface_for_resource = true; 1317 output_surface_plane.use_output_surface_for_resource = true;
1322 output_surface_plane.overlay_handled = true; 1318 output_surface_plane.overlay_handled = true;
1323 candidate_list.push_back(output_surface_plane); 1319 candidate_list.push_back(output_surface_plane);
1324 1320
1325 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, 1321 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list,
1326 &candidate_list, &damage_rect_); 1322 &candidate_list, &damage_rect_);
1327 DCHECK(!damage_rect_.IsEmpty()); 1323 DCHECK(!damage_rect_.IsEmpty());
1328 } 1324 }
1329 1325
1330 TEST_F(AllOrNothingOverlayTest, SuccessfulOverlappingOverlays) { 1326 OverlayCandidateList BackbufferOverlayList(const RenderPass* root_render_pass) {
1331 scoped_ptr<RenderPass> pass = CreateRenderPass(); 1327 OverlayCandidateList list;
1332 1328 OverlayCandidate output_surface_plane;
1333 // Add two overlapping candidates. 1329 output_surface_plane.display_rect = gfx::RectF(root_render_pass->output_rect);
1334 CreateCandidateQuadAt(resource_provider_.get(), 1330 output_surface_plane.quad_rect_in_target_space =
1335 pass->shared_quad_state_list.back(), pass.get(), 1331 root_render_pass->output_rect;
1336 kOverlayTopLeftRect); 1332 output_surface_plane.use_output_surface_for_resource = true;
1337 CreateCandidateQuadAt(resource_provider_.get(), 1333 output_surface_plane.overlay_handled = true;
1338 pass->shared_quad_state_list.back(), pass.get(), 1334 list.push_back(output_surface_plane);
1339 kOverlayRect); 1335 return list;
1340
1341 RenderPassList pass_list;
1342 pass_list.push_back(pass.Pass());
1343 OverlayCandidateList candidates;
1344 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list,
1345 &candidates, &damage_rect_);
1346
1347 // Both quads should become overlays.
1348 EXPECT_EQ(2u, candidates.size());
1349 EXPECT_EQ(-1, candidates[0].plane_z_order);
1350 EXPECT_EQ(-2, candidates[1].plane_z_order);
1351 EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidates[0].display_rect);
1352 EXPECT_EQ(gfx::RectF(kOverlayRect), candidates[1].display_rect);
1353
1354 // All quads should be gone.
1355 EXPECT_TRUE(pass_list.back()->quad_list.empty());
1356 } 1336 }
1357 1337
1358 TEST_F(AllOrNothingOverlayTest, RejectQuadWithTransform) { 1338 TEST_F(CALayerOverlayTest, AllowNonAxisAlignedTransform) {
1359 scoped_ptr<RenderPass> pass = CreateRenderPass();
1360
1361 CreateCandidateQuadAt(resource_provider_.get(),
1362 pass->shared_quad_state_list.back(), pass.get(),
1363 kOverlayTopLeftRect);
1364
1365 // Add a rotated quad that can't be promoted into overlay.
1366 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState();
1367 shared_state->opacity = 1.f;
1368 shared_state->quad_to_target_transform.Rotate(90);
1369 CreateSolidColorQuadAt(shared_state, SK_ColorBLACK, pass.get(),
1370 kOverlayBottomRightRect);
1371
1372 RenderPassList pass_list;
1373 pass_list.push_back(pass.Pass());
1374 OverlayCandidateList candidates;
1375 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list,
1376 &candidates, &damage_rect_);
1377
1378 // No quads should become overlays.
1379 EXPECT_EQ(0u, candidates.size());
1380 EXPECT_EQ(2u, pass_list.back()->quad_list.size());
1381 }
1382
1383 TEST_F(AllOrNothingOverlayTest, DamageRect) {
1384 scoped_ptr<RenderPass> pass = CreateRenderPass(); 1339 scoped_ptr<RenderPass> pass = CreateRenderPass();
1385 CreateFullscreenCandidateQuad(resource_provider_.get(), 1340 CreateFullscreenCandidateQuad(resource_provider_.get(),
1386 pass->shared_quad_state_list.back(), 1341 pass->shared_quad_state_list.back(),
1387 pass.get()); 1342 pass.get());
1388 1343 pass->shared_quad_state_list.back()
1389 damage_rect_ = kOverlayRect; 1344 ->quad_to_target_transform.RotateAboutZAxis(45.f);
1390
1391 // Add something behind it.
1392 CreateFullscreenOpaqueQuad(resource_provider_.get(),
1393 pass->shared_quad_state_list.back(), pass.get());
1394 CreateFullscreenOpaqueQuad(resource_provider_.get(),
1395 pass->shared_quad_state_list.back(), pass.get());
1396 1345
1397 RenderPassList pass_list; 1346 RenderPassList pass_list;
1398 pass_list.push_back(pass.Pass()); 1347 pass_list.push_back(pass.Pass());
1348 CALayerOverlayList ca_layer_list;
1349 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1350 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1351 &ca_layer_list, &overlay_list);
1352 ASSERT_EQ(1U, pass_list.size());
1353 EXPECT_EQ(0U, pass_list.back()->quad_list.size());
1354 EXPECT_EQ(0U, overlay_list.size());
1355 EXPECT_EQ(1U, ca_layer_list.size());
1356 }
1399 1357
1400 // Check for potential candidates. 1358 TEST_F(CALayerOverlayTest, Disallow3DTransform) {
1401 OverlayCandidateList candidate_list; 1359 scoped_ptr<RenderPass> pass = CreateRenderPass();
1360 CreateFullscreenCandidateQuad(resource_provider_.get(),
1361 pass->shared_quad_state_list.back(),
1362 pass.get());
1363 pass->shared_quad_state_list.back()
1364 ->quad_to_target_transform.RotateAboutXAxis(45.f);
1402 1365
1403 // Primary plane. 1366 RenderPassList pass_list;
1404 OverlayCandidate output_surface_plane; 1367 pass_list.push_back(pass.Pass());
1405 output_surface_plane.display_rect = gfx::RectF(kOverlayRect); 1368 CALayerOverlayList ca_layer_list;
1406 output_surface_plane.quad_rect_in_target_space = kOverlayRect; 1369 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1407 output_surface_plane.use_output_surface_for_resource = true; 1370 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1408 output_surface_plane.overlay_handled = true; 1371 &ca_layer_list, &overlay_list);
1409 candidate_list.push_back(output_surface_plane); 1372 ASSERT_EQ(1U, pass_list.size());
1373 EXPECT_EQ(1U, pass_list.back()->quad_list.size());
1374 EXPECT_EQ(1U, overlay_list.size());
1375 EXPECT_EQ(0U, ca_layer_list.size());
1376 }
1410 1377
1411 overlay_processor_->ProcessForOverlays(resource_provider_.get(), &pass_list, 1378 TEST_F(CALayerOverlayTest, AllowContainingClip) {
1412 &candidate_list, &damage_rect_); 1379 scoped_ptr<RenderPass> pass = CreateRenderPass();
1413 DCHECK(!damage_rect_.IsEmpty()); 1380 CreateFullscreenCandidateQuad(resource_provider_.get(),
1381 pass->shared_quad_state_list.back(),
1382 pass.get());
1383 pass->shared_quad_state_list.back()->is_clipped = true;
1384 pass->shared_quad_state_list.back()->clip_rect = kOverlayRect;
1385
1386 RenderPassList pass_list;
1387 pass_list.push_back(pass.Pass());
1388 CALayerOverlayList ca_layer_list;
1389 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1390 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1391 &ca_layer_list, &overlay_list);
1392 ASSERT_EQ(1U, pass_list.size());
1393 EXPECT_EQ(0U, pass_list.back()->quad_list.size());
1394 EXPECT_EQ(0U, overlay_list.size());
1395 EXPECT_EQ(1U, ca_layer_list.size());
1396 }
1397
1398 TEST_F(CALayerOverlayTest, SkipDisjointClip) {
1399 scoped_ptr<RenderPass> pass = CreateRenderPass();
1400 CreateFullscreenCandidateQuad(resource_provider_.get(),
1401 pass->shared_quad_state_list.back(),
1402 pass.get());
1403 pass->shared_quad_state_list.back()->is_clipped = true;
1404 pass->shared_quad_state_list.back()->clip_rect =
1405 gfx::Rect(128, 128, 128, 128);
1406
1407 RenderPassList pass_list;
1408 pass_list.push_back(pass.Pass());
1409 CALayerOverlayList ca_layer_list;
1410 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1411 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1412 &ca_layer_list, &overlay_list);
1413 ASSERT_EQ(1U, pass_list.size());
1414 EXPECT_EQ(0U, pass_list.back()->quad_list.size());
1415 EXPECT_EQ(0U, overlay_list.size());
1416 EXPECT_EQ(0U, ca_layer_list.size());
1417 }
1418
1419 TEST_F(CALayerOverlayTest, DisallowNontrivialClip) {
1420 scoped_ptr<RenderPass> pass = CreateRenderPass();
1421 CreateFullscreenCandidateQuad(resource_provider_.get(),
1422 pass->shared_quad_state_list.back(),
1423 pass.get());
1424 pass->shared_quad_state_list.back()->is_clipped = true;
1425 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(64, 64, 128, 128);
1426
1427 RenderPassList pass_list;
1428 pass_list.push_back(pass.Pass());
1429 CALayerOverlayList ca_layer_list;
1430 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1431 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1432 &ca_layer_list, &overlay_list);
1433
1434 ASSERT_EQ(1U, pass_list.size());
1435 EXPECT_EQ(1U, pass_list.back()->quad_list.size());
1436 EXPECT_EQ(1U, overlay_list.size());
1437 EXPECT_EQ(0U, ca_layer_list.size());
1438 }
1439
1440 TEST_F(CALayerOverlayTest, SkipTransparent) {
1441 scoped_ptr<RenderPass> pass = CreateRenderPass();
1442 CreateFullscreenCandidateQuad(resource_provider_.get(),
1443 pass->shared_quad_state_list.back(),
1444 pass.get());
1445 pass->shared_quad_state_list.back()->opacity = 0;
1446
1447 RenderPassList pass_list;
1448 pass_list.push_back(pass.Pass());
1449 CALayerOverlayList ca_layer_list;
1450 OverlayCandidateList overlay_list(BackbufferOverlayList(pass_list.back()));
1451 overlay_processor_->ProcessForCALayers(resource_provider_.get(), &pass_list,
1452 &ca_layer_list, &overlay_list);
1453 ASSERT_EQ(1U, pass_list.size());
1454 EXPECT_EQ(0U, pass_list.back()->quad_list.size());
1455 EXPECT_EQ(0U, overlay_list.size());
1456 EXPECT_EQ(0U, ca_layer_list.size());
1414 } 1457 }
1415 1458
1416 class OverlayInfoRendererGL : public GLRenderer { 1459 class OverlayInfoRendererGL : public GLRenderer {
1417 public: 1460 public:
1418 OverlayInfoRendererGL(RendererClient* client, 1461 OverlayInfoRendererGL(RendererClient* client,
1419 const RendererSettings* settings, 1462 const RendererSettings* settings,
1420 OutputSurface* output_surface, 1463 OutputSurface* output_surface,
1421 ResourceProvider* resource_provider) 1464 ResourceProvider* resource_provider)
1422 : GLRenderer(client, 1465 : GLRenderer(client,
1423 settings, 1466 settings,
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 renderer_->BeginDrawingFrame(&frame_no_overlays); 1802 renderer_->BeginDrawingFrame(&frame_no_overlays);
1760 renderer_->FinishDrawingFrame(&frame_no_overlays); 1803 renderer_->FinishDrawingFrame(&frame_no_overlays);
1761 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 1804 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
1762 SwapBuffers(); 1805 SwapBuffers();
1763 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 1806 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
1764 Mock::VerifyAndClearExpectations(&scheduler_); 1807 Mock::VerifyAndClearExpectations(&scheduler_);
1765 } 1808 }
1766 1809
1767 } // namespace 1810 } // namespace
1768 } // namespace cc 1811 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/overlay_strategy_all_or_nothing.cc ('k') | cc/test/fake_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698