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

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

Issue 2159513003: Setup LayerTree class, refactor 2 functions from LayerTreeHost to it. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Layer GetLayerTree now directly uses LayerTree pointer. 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
« cc/proto/layer_tree.proto ('K') | « cc/trees/tree_synchronizer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/tree_synchronizer.h" 5 #include "cc/trees/tree_synchronizer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 host_->SetRootLayer(layer_tree_root); 210 host_->SetRootLayer(layer_tree_root);
211 211
212 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 212 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
213 host_->active_tree()); 213 host_->active_tree());
214 LayerImpl* layer_impl_tree_root = 214 LayerImpl* layer_impl_tree_root =
215 host_->active_tree()->root_layer_for_testing(); 215 host_->active_tree()->root_layer_for_testing();
216 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 216 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
217 host_->active_tree()); 217 host_->active_tree());
218 218
219 // We have to push properties to pick up the destruction list pointer. 219 // We have to push properties to pick up the destruction list pointer.
220 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), 220 TreeSynchronizer::PushLayerProperties(layer_tree_root->GetLayerTree(),
221 host_->active_tree()); 221 host_->active_tree());
222 222
223 // Add a new layer to the Layer side 223 // Add a new layer to the Layer side
224 layer_tree_root->children()[0]->AddChild( 224 layer_tree_root->children()[0]->AddChild(
225 MockLayer::Create(&layer_impl_destruction_list)); 225 MockLayer::Create(&layer_impl_destruction_list));
226 // Remove one. 226 // Remove one.
227 layer_tree_root->children()[1]->RemoveFromParent(); 227 layer_tree_root->children()[1]->RemoveFromParent();
228 228
229 // Synchronize again. After the sync the trees should be equivalent and we 229 // Synchronize again. After the sync the trees should be equivalent and we
230 // should have created and destroyed one LayerImpl. 230 // should have created and destroyed one LayerImpl.
(...skipping 28 matching lines...) Expand all
259 host_->SetRootLayer(layer_tree_root); 259 host_->SetRootLayer(layer_tree_root);
260 260
261 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 261 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
262 host_->active_tree()); 262 host_->active_tree());
263 LayerImpl* layer_impl_tree_root = 263 LayerImpl* layer_impl_tree_root =
264 host_->active_tree()->root_layer_for_testing(); 264 host_->active_tree()->root_layer_for_testing();
265 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 265 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
266 host_->active_tree()); 266 host_->active_tree());
267 267
268 // We have to push properties to pick up the destruction list pointer. 268 // We have to push properties to pick up the destruction list pointer.
269 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), 269 TreeSynchronizer::PushLayerProperties(layer_tree_root->GetLayerTree(),
270 host_->active_tree()); 270 host_->active_tree());
271 271
272 host_->active_tree()->ResetAllChangeTracking(); 272 host_->active_tree()->ResetAllChangeTracking();
273 273
274 // re-insert the layer and sync again. 274 // re-insert the layer and sync again.
275 child2->RemoveFromParent(); 275 child2->RemoveFromParent();
276 layer_tree_root->AddChild(child2); 276 layer_tree_root->AddChild(child2);
277 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 277 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
278 host_->active_tree()); 278 host_->active_tree());
279 layer_impl_tree_root = host_->active_tree()->root_layer_for_testing(); 279 layer_impl_tree_root = host_->active_tree()->root_layer_for_testing();
280 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 280 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
281 host_->active_tree()); 281 host_->active_tree());
282 282
283 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), 283 TreeSynchronizer::PushLayerProperties(layer_tree_root->GetLayerTree(),
284 host_->active_tree()); 284 host_->active_tree());
285 285
286 // Check that the impl thread properly tracked the change. 286 // Check that the impl thread properly tracked the change.
287 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged()); 287 EXPECT_FALSE(layer_impl_tree_root->LayerPropertyChanged());
288 EXPECT_FALSE( 288 EXPECT_FALSE(
289 host_->active_tree()->LayerById(child1_id)->LayerPropertyChanged()); 289 host_->active_tree()->LayerById(child1_id)->LayerPropertyChanged());
290 EXPECT_TRUE( 290 EXPECT_TRUE(
291 host_->active_tree()->LayerById(child2_id)->LayerPropertyChanged()); 291 host_->active_tree()->LayerById(child2_id)->LayerPropertyChanged());
292 host_->active_tree()->DetachLayers(); 292 host_->active_tree()->DetachLayers();
293 } 293 }
(...skipping 15 matching lines...) Expand all
309 layer_tree_root->children()[1]->SavePaintProperties(); 309 layer_tree_root->children()[1]->SavePaintProperties();
310 int second_child_id = layer_tree_root->children()[1]->id(); 310 int second_child_id = layer_tree_root->children()[1]->id();
311 311
312 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 312 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
313 host_->active_tree()); 313 host_->active_tree());
314 LayerImpl* layer_impl_tree_root = 314 LayerImpl* layer_impl_tree_root =
315 host_->active_tree()->root_layer_for_testing(); 315 host_->active_tree()->root_layer_for_testing();
316 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 316 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
317 host_->active_tree()); 317 host_->active_tree());
318 318
319 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), 319 TreeSynchronizer::PushLayerProperties(layer_tree_root->GetLayerTree(),
320 host_->active_tree()); 320 host_->active_tree());
321 321
322 // Check that the property values we set on the Layer tree are reflected in 322 // Check that the property values we set on the Layer tree are reflected in
323 // the LayerImpl tree. 323 // the LayerImpl tree.
324 gfx::PointF root_layer_impl_position = layer_impl_tree_root->position(); 324 gfx::PointF root_layer_impl_position = layer_impl_tree_root->position();
325 EXPECT_EQ(root_position.x(), root_layer_impl_position.x()); 325 EXPECT_EQ(root_position.x(), root_layer_impl_position.x());
326 EXPECT_EQ(root_position.y(), root_layer_impl_position.y()); 326 EXPECT_EQ(root_position.y(), root_layer_impl_position.y());
327 327
328 gfx::Size second_layer_impl_child_bounds = 328 gfx::Size second_layer_impl_child_bounds =
329 layer_impl_tree_root->layer_tree_impl() 329 layer_impl_tree_root->layer_tree_impl()
(...skipping 29 matching lines...) Expand all
359 host_->SetRootLayer(layer_tree_root); 359 host_->SetRootLayer(layer_tree_root);
360 360
361 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(), 361 TreeSynchronizer::SynchronizeTrees(layer_tree_root.get(),
362 host_->active_tree()); 362 host_->active_tree());
363 LayerImpl* layer_impl_tree_root = 363 LayerImpl* layer_impl_tree_root =
364 host_->active_tree()->root_layer_for_testing(); 364 host_->active_tree()->root_layer_for_testing();
365 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root, 365 ExpectTreesAreIdentical(layer_tree_root.get(), layer_impl_tree_root,
366 host_->active_tree()); 366 host_->active_tree());
367 367
368 // We have to push properties to pick up the destruction list pointer. 368 // We have to push properties to pick up the destruction list pointer.
369 TreeSynchronizer::PushLayerProperties(layer_tree_root->layer_tree_host(), 369 TreeSynchronizer::PushLayerProperties(layer_tree_root->GetLayerTree(),
370 host_->active_tree()); 370 host_->active_tree());
371 371
372 // Now restructure the tree to look like this: 372 // Now restructure the tree to look like this:
373 // root --- D ---+--- A 373 // root --- D ---+--- A
374 // | 374 // |
375 // +--- C --- B 375 // +--- C --- B
376 layer_tree_root->RemoveAllChildren(); 376 layer_tree_root->RemoveAllChildren();
377 layer_d->RemoveAllChildren(); 377 layer_d->RemoveAllChildren();
378 layer_tree_root->AddChild(layer_d); 378 layer_tree_root->AddChild(layer_d);
379 layer_a->RemoveAllChildren(); 379 layer_a->RemoveAllChildren();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id(); 415 int old_tree_second_child_layer_id = old_layer_tree_root->children()[1]->id();
416 416
417 TreeSynchronizer::SynchronizeTrees(old_layer_tree_root.get(), 417 TreeSynchronizer::SynchronizeTrees(old_layer_tree_root.get(),
418 host_->active_tree()); 418 host_->active_tree());
419 LayerImpl* layer_impl_tree_root = 419 LayerImpl* layer_impl_tree_root =
420 host_->active_tree()->root_layer_for_testing(); 420 host_->active_tree()->root_layer_for_testing();
421 ExpectTreesAreIdentical(old_layer_tree_root.get(), layer_impl_tree_root, 421 ExpectTreesAreIdentical(old_layer_tree_root.get(), layer_impl_tree_root,
422 host_->active_tree()); 422 host_->active_tree());
423 423
424 // We have to push properties to pick up the destruction list pointer. 424 // We have to push properties to pick up the destruction list pointer.
425 TreeSynchronizer::PushLayerProperties(old_layer_tree_root->layer_tree_host(), 425 TreeSynchronizer::PushLayerProperties(old_layer_tree_root->GetLayerTree(),
426 host_->active_tree()); 426 host_->active_tree());
427 427
428 // Remove all children on the Layer side. 428 // Remove all children on the Layer side.
429 old_layer_tree_root->RemoveAllChildren(); 429 old_layer_tree_root->RemoveAllChildren();
430 430
431 // Synchronize again. After the sync all LayerImpls from the old tree should 431 // Synchronize again. After the sync all LayerImpls from the old tree should
432 // be deleted. 432 // be deleted.
433 scoped_refptr<Layer> new_layer_tree_root = Layer::Create(); 433 scoped_refptr<Layer> new_layer_tree_root = Layer::Create();
434 host_->SetRootLayer(new_layer_tree_root); 434 host_->SetRootLayer(new_layer_tree_root);
435 435
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 host_->CommitAndCreatePendingTree(); 699 host_->CommitAndCreatePendingTree();
700 host_impl->ActivateSyncTree(); 700 host_impl->ActivateSyncTree();
701 EXPECT_EQ( 701 EXPECT_EQ(
702 CombinedAnimationScale(0.f, 0.f), 702 CombinedAnimationScale(0.f, 0.f),
703 host_impl->active_tree()->property_trees()->GetAnimationScales( 703 host_impl->active_tree()->property_trees()->GetAnimationScales(
704 transform_layer->transform_tree_index(), host_impl->active_tree())); 704 transform_layer->transform_tree_index(), host_impl->active_tree()));
705 } 705 }
706 706
707 } // namespace 707 } // namespace
708 } // namespace cc 708 } // namespace cc
OLDNEW
« cc/proto/layer_tree.proto ('K') | « cc/trees/tree_synchronizer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698