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

Side by Side Diff: cc/trees/layer_tree_host_unittest_picture.cc

Issue 1437413002: cc: Remove ScopedPtrVector and cc::remove_if. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "cc/test/fake_content_layer_client.h" 7 #include "cc/test/fake_content_layer_client.h"
8 #include "cc/test/fake_picture_layer.h" 8 #include "cc/test/fake_picture_layer.h"
9 #include "cc/test/fake_picture_layer_impl.h" 9 #include "cc/test/fake_picture_layer_impl.h"
10 #include "cc/test/layer_tree_test.h" 10 #include "cc/test/layer_tree_test.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override { 74 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override {
75 LayerImpl* pending_root_impl = impl->pending_tree()->root_layer(); 75 LayerImpl* pending_root_impl = impl->pending_tree()->root_layer();
76 LayerImpl* active_root_impl = impl->active_tree()->root_layer(); 76 LayerImpl* active_root_impl = impl->active_tree()->root_layer();
77 77
78 if (pending_root_impl->children().empty()) { 78 if (pending_root_impl->children().empty()) {
79 EXPECT_EQ(2, activates_); 79 EXPECT_EQ(2, activates_);
80 return; 80 return;
81 } 81 }
82 82
83 FakePictureLayerImpl* pending_picture_impl = 83 FakePictureLayerImpl* pending_picture_impl =
84 static_cast<FakePictureLayerImpl*>(pending_root_impl->children()[0]); 84 static_cast<FakePictureLayerImpl*>(
85 pending_root_impl->children()[0].get());
85 86
86 if (!active_root_impl) { 87 if (!active_root_impl) {
87 EXPECT_EQ(0, activates_); 88 EXPECT_EQ(0, activates_);
88 EXPECT_EQ(nullptr, pending_picture_impl->GetPendingOrActiveTwinLayer()); 89 EXPECT_EQ(nullptr, pending_picture_impl->GetPendingOrActiveTwinLayer());
89 return; 90 return;
90 } 91 }
91 92
92 if (active_root_impl->children().empty()) { 93 if (active_root_impl->children().empty()) {
93 EXPECT_EQ(3, activates_); 94 EXPECT_EQ(3, activates_);
94 EXPECT_EQ(nullptr, pending_picture_impl->GetPendingOrActiveTwinLayer()); 95 EXPECT_EQ(nullptr, pending_picture_impl->GetPendingOrActiveTwinLayer());
95 return; 96 return;
96 } 97 }
97 98
98 FakePictureLayerImpl* active_picture_impl = 99 FakePictureLayerImpl* active_picture_impl =
99 static_cast<FakePictureLayerImpl*>(active_root_impl->children()[0]); 100 static_cast<FakePictureLayerImpl*>(
101 active_root_impl->children()[0].get());
100 102
101 // After the first activation, when we commit again, we'll have a pending 103 // After the first activation, when we commit again, we'll have a pending
102 // and active layer. Then we recreate a picture layer in the 4th activate 104 // and active layer. Then we recreate a picture layer in the 4th activate
103 // and the next commit will have a pending and active twin again. 105 // and the next commit will have a pending and active twin again.
104 EXPECT_TRUE(activates_ == 1 || activates_ == 4) << activates_; 106 EXPECT_TRUE(activates_ == 1 || activates_ == 4) << activates_;
105 107
106 EXPECT_EQ(pending_picture_impl, 108 EXPECT_EQ(pending_picture_impl,
107 active_picture_impl->GetPendingOrActiveTwinLayer()); 109 active_picture_impl->GetPendingOrActiveTwinLayer());
108 EXPECT_EQ(active_picture_impl, 110 EXPECT_EQ(active_picture_impl,
109 pending_picture_impl->GetPendingOrActiveTwinLayer()); 111 pending_picture_impl->GetPendingOrActiveTwinLayer());
110 } 112 }
111 113
112 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override { 114 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
113 LayerImpl* active_root_impl = impl->active_tree()->root_layer(); 115 LayerImpl* active_root_impl = impl->active_tree()->root_layer();
114 if (active_root_impl->children().empty()) { 116 if (active_root_impl->children().empty()) {
115 EXPECT_EQ(2, activates_); 117 EXPECT_EQ(2, activates_);
116 } else { 118 } else {
117 FakePictureLayerImpl* active_picture_impl = 119 FakePictureLayerImpl* active_picture_impl =
118 static_cast<FakePictureLayerImpl*>(active_root_impl->children()[0]); 120 static_cast<FakePictureLayerImpl*>(
121 active_root_impl->children()[0].get());
119 EXPECT_EQ(nullptr, active_picture_impl->GetPendingOrActiveTwinLayer()); 122 EXPECT_EQ(nullptr, active_picture_impl->GetPendingOrActiveTwinLayer());
120 } 123 }
121 124
122 ++activates_; 125 ++activates_;
123 } 126 }
124 127
125 void AfterTest() override { EXPECT_EQ(5, activates_); } 128 void AfterTest() override { EXPECT_EQ(5, activates_); }
126 129
127 int activates_; 130 int activates_;
128 }; 131 };
(...skipping 16 matching lines...) Expand all
145 picture_->SetBounds(gfx::Size(768, 960)); 148 picture_->SetBounds(gfx::Size(768, 960));
146 root->AddChild(picture_); 149 root->AddChild(picture_);
147 150
148 layer_tree_host()->SetRootLayer(root); 151 layer_tree_host()->SetRootLayer(root);
149 LayerTreeHostPictureTest::SetupTree(); 152 LayerTreeHostPictureTest::SetupTree();
150 } 153 }
151 154
152 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 155 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
153 156
154 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 157 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
155 LayerImpl* child = impl->sync_tree()->root_layer()->children()[0]; 158 LayerImpl* child = impl->sync_tree()->root_layer()->children()[0].get();
156 FakePictureLayerImpl* picture_impl = 159 FakePictureLayerImpl* picture_impl =
157 static_cast<FakePictureLayerImpl*>(child); 160 static_cast<FakePictureLayerImpl*>(child);
158 gfx::Size tile_size = 161 gfx::Size tile_size =
159 picture_impl->HighResTiling()->TileAt(0, 0)->content_rect().size(); 162 picture_impl->HighResTiling()->TileAt(0, 0)->content_rect().size();
160 163
161 switch (impl->sync_tree()->source_frame_number()) { 164 switch (impl->sync_tree()->source_frame_number()) {
162 case 0: 165 case 0:
163 tile_size_ = tile_size; 166 tile_size_ = tile_size;
164 // GPU Raster picks a tile size based on the viewport size. 167 // GPU Raster picks a tile size based on the viewport size.
165 EXPECT_EQ(gfx::Size(768, 256), tile_size); 168 EXPECT_EQ(gfx::Size(768, 256), tile_size);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 // force it to have a transform node by making it scrollable. 217 // force it to have a transform node by making it scrollable.
215 picture_->SetScrollClipLayerId(root->id()); 218 picture_->SetScrollClipLayerId(root->id());
216 219
217 layer_tree_host()->SetRootLayer(root); 220 layer_tree_host()->SetRootLayer(root);
218 LayerTreeHostPictureTest::SetupTree(); 221 LayerTreeHostPictureTest::SetupTree();
219 } 222 }
220 223
221 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 224 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
222 225
223 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 226 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
224 LayerImpl* child = impl->active_tree()->root_layer()->children()[0]; 227 LayerImpl* child = impl->active_tree()->root_layer()->children()[0].get();
225 FakePictureLayerImpl* picture_impl = 228 FakePictureLayerImpl* picture_impl =
226 static_cast<FakePictureLayerImpl*>(child); 229 static_cast<FakePictureLayerImpl*>(child);
227 switch (++frame_) { 230 switch (++frame_) {
228 case 1: { 231 case 1: {
229 PictureLayerTiling* tiling = picture_impl->HighResTiling(); 232 PictureLayerTiling* tiling = picture_impl->HighResTiling();
230 int num_tiles_y = tiling->TilingDataForTesting().num_tiles_y(); 233 int num_tiles_y = tiling->TilingDataForTesting().num_tiles_y();
231 234
232 // There should be tiles at the top of the picture layer but not at the 235 // There should be tiles at the top of the picture layer but not at the
233 // bottom. 236 // bottom.
234 EXPECT_TRUE(tiling->TileAt(0, 0)); 237 EXPECT_TRUE(tiling->TileAt(0, 0));
(...skipping 30 matching lines...) Expand all
265 // Make a new main frame without changing the picture layer at all, so 268 // Make a new main frame without changing the picture layer at all, so
266 // it won't need to update or push properties. 269 // it won't need to update or push properties.
267 did_post_commit_ = true; 270 did_post_commit_ = true;
268 PostSetNeedsCommitToMainThread(); 271 PostSetNeedsCommitToMainThread();
269 break; 272 break;
270 } 273 }
271 } 274 }
272 } 275 }
273 276
274 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override { 277 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override {
275 LayerImpl* child = impl->sync_tree()->root_layer()->children()[0]; 278 LayerImpl* child = impl->sync_tree()->root_layer()->children()[0].get();
276 FakePictureLayerImpl* picture_impl = 279 FakePictureLayerImpl* picture_impl =
277 static_cast<FakePictureLayerImpl*>(child); 280 static_cast<FakePictureLayerImpl*>(child);
278 PictureLayerTiling* tiling = picture_impl->HighResTiling(); 281 PictureLayerTiling* tiling = picture_impl->HighResTiling();
279 int num_tiles_y = tiling->TilingDataForTesting().num_tiles_y(); 282 int num_tiles_y = tiling->TilingDataForTesting().num_tiles_y();
280 283
281 if (!impl->active_tree()->root_layer()) { 284 if (!impl->active_tree()->root_layer()) {
282 // If active tree doesn't have the layer, then pending tree should have 285 // If active tree doesn't have the layer, then pending tree should have
283 // all needed tiles. 286 // all needed tiles.
284 EXPECT_TRUE(tiling->TileAt(0, 0)); 287 EXPECT_TRUE(tiling->TileAt(0, 0));
285 } else { 288 } else {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 child_->AddChild(picture_); 322 child_->AddChild(picture_);
320 323
321 layer_tree_host()->SetRootLayer(root); 324 layer_tree_host()->SetRootLayer(root);
322 LayerTreeHostPictureTest::SetupTree(); 325 LayerTreeHostPictureTest::SetupTree();
323 } 326 }
324 327
325 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 328 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
326 329
327 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 330 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
328 LayerImpl* root = impl->sync_tree()->root_layer(); 331 LayerImpl* root = impl->sync_tree()->root_layer();
329 LayerImpl* child = root->children()[0]; 332 LayerImpl* child = root->children()[0].get();
330 LayerImpl* gchild = child->children()[0]; 333 LayerImpl* gchild = child->children()[0].get();
331 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 334 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
332 335
333 switch (impl->sync_tree()->source_frame_number()) { 336 switch (impl->sync_tree()->source_frame_number()) {
334 case 0: 337 case 0:
335 // On 1st commit the layer has tilings. 338 // On 1st commit the layer has tilings.
336 EXPECT_GT(picture->tilings()->num_tilings(), 0u); 339 EXPECT_GT(picture->tilings()->num_tilings(), 0u);
337 break; 340 break;
338 case 1: 341 case 1:
339 // On 2nd commit, the layer is transparent, but its tilings are left 342 // On 2nd commit, the layer is transparent, but its tilings are left
340 // there. 343 // there.
341 EXPECT_GT(picture->tilings()->num_tilings(), 0u); 344 EXPECT_GT(picture->tilings()->num_tilings(), 0u);
342 break; 345 break;
343 case 2: 346 case 2:
344 // On 3rd commit, the layer is visible again, so has tilings. 347 // On 3rd commit, the layer is visible again, so has tilings.
345 EXPECT_GT(picture->tilings()->num_tilings(), 0u); 348 EXPECT_GT(picture->tilings()->num_tilings(), 0u);
346 } 349 }
347 } 350 }
348 351
349 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override { 352 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
350 LayerImpl* root = impl->active_tree()->root_layer(); 353 LayerImpl* root = impl->active_tree()->root_layer();
351 LayerImpl* child = root->children()[0]; 354 LayerImpl* child = root->children()[0].get();
352 LayerImpl* gchild = child->children()[0]; 355 LayerImpl* gchild = child->children()[0].get();
353 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 356 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
354 357
355 switch (impl->active_tree()->source_frame_number()) { 358 switch (impl->active_tree()->source_frame_number()) {
356 case 0: 359 case 0:
357 // On 1st commit the layer has tilings. 360 // On 1st commit the layer has tilings.
358 EXPECT_GT(picture->tilings()->num_tilings(), 0u); 361 EXPECT_GT(picture->tilings()->num_tilings(), 0u);
359 break; 362 break;
360 case 1: 363 case 1:
361 // On 2nd commit, the layer is transparent, but its tilings are left 364 // On 2nd commit, the layer is transparent, but its tilings are left
362 // there. 365 // there.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 void BeginTest() override { 426 void BeginTest() override {
424 frame_ = 0; 427 frame_ = 0;
425 draws_in_frame_ = 0; 428 draws_in_frame_ = 0;
426 last_frame_drawn_ = -1; 429 last_frame_drawn_ = -1;
427 ready_to_draw_ = false; 430 ready_to_draw_ = false;
428 PostSetNeedsCommitToMainThread(); 431 PostSetNeedsCommitToMainThread();
429 } 432 }
430 433
431 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override { 434 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override {
432 LayerImpl* root = impl->sync_tree()->root_layer(); 435 LayerImpl* root = impl->sync_tree()->root_layer();
433 LayerImpl* pinch = root->children()[0]; 436 LayerImpl* pinch = root->children()[0].get();
434 LayerImpl* gchild = pinch->children()[0]; 437 LayerImpl* gchild = pinch->children()[0].get();
435 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 438 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
436 ready_to_draw_ = false; 439 ready_to_draw_ = false;
437 440
438 switch (frame_) { 441 switch (frame_) {
439 case 0: 442 case 0:
440 // On 1st commit the pending layer has tilings. 443 // On 1st commit the pending layer has tilings.
441 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 444 ASSERT_EQ(1u, picture->tilings()->num_tilings());
442 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale()); 445 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale());
443 break; 446 break;
444 case 1: 447 case 1:
445 // On 2nd commit, the pending layer is transparent, so has a stale 448 // On 2nd commit, the pending layer is transparent, so has a stale
446 // value. 449 // value.
447 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 450 ASSERT_EQ(1u, picture->tilings()->num_tilings());
448 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale()); 451 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale());
449 break; 452 break;
450 case 2: 453 case 2:
451 // On 3rd commit, the pending layer is visible again, so has tilings and 454 // On 3rd commit, the pending layer is visible again, so has tilings and
452 // is updated for the pinch. 455 // is updated for the pinch.
453 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 456 ASSERT_EQ(1u, picture->tilings()->num_tilings());
454 EXPECT_EQ(2.f, picture->tilings()->tiling_at(0)->contents_scale()); 457 EXPECT_EQ(2.f, picture->tilings()->tiling_at(0)->contents_scale());
455 } 458 }
456 } 459 }
457 460
458 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 461 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
459 LayerImpl* root = impl->active_tree()->root_layer(); 462 LayerImpl* root = impl->active_tree()->root_layer();
460 LayerImpl* pinch = root->children()[0]; 463 LayerImpl* pinch = root->children()[0].get();
461 LayerImpl* gchild = pinch->children()[0]; 464 LayerImpl* gchild = pinch->children()[0].get();
462 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 465 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
463 466
464 if (frame_ != last_frame_drawn_) 467 if (frame_ != last_frame_drawn_)
465 draws_in_frame_ = 0; 468 draws_in_frame_ = 0;
466 ++draws_in_frame_; 469 ++draws_in_frame_;
467 last_frame_drawn_ = frame_; 470 last_frame_drawn_ = frame_;
468 471
469 switch (frame_) { 472 switch (frame_) {
470 case 0: 473 case 0:
471 if (draws_in_frame_ == 1) { 474 if (draws_in_frame_ == 1) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 int last_frame_drawn_; 557 int last_frame_drawn_;
555 bool ready_to_draw_; 558 bool ready_to_draw_;
556 }; 559 };
557 560
558 // Multi-thread only because in single thread you can't pinch zoom on the 561 // Multi-thread only because in single thread you can't pinch zoom on the
559 // compositor thread. 562 // compositor thread.
560 MULTI_THREAD_TEST_F(LayerTreeHostPictureTestRSLLMembershipWithScale); 563 MULTI_THREAD_TEST_F(LayerTreeHostPictureTestRSLLMembershipWithScale);
561 564
562 } // namespace 565 } // namespace
563 } // namespace cc 566 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_occlusion.cc ('k') | cc/trees/layer_tree_host_unittest_scroll.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698