| OLD | NEW |
| 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
| 6 | 6 |
| 7 #include "cc/animation/keyframed_animation_curve.h" | 7 #include "cc/animation/keyframed_animation_curve.h" |
| 8 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
| 9 #include "cc/layers/layer_impl.h" | 9 #include "cc/layers/layer_impl.h" |
| 10 #include "cc/resources/layer_painter.h" | 10 #include "cc/resources/layer_painter.h" |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 scoped_refptr<Layer> child = Layer::Create(); | 160 scoped_refptr<Layer> child = Layer::Create(); |
| 161 | 161 |
| 162 // Upon creation, layers should not have children or parent. | 162 // Upon creation, layers should not have children or parent. |
| 163 ASSERT_EQ(0U, parent->children().size()); | 163 ASSERT_EQ(0U, parent->children().size()); |
| 164 EXPECT_FALSE(child->parent()); | 164 EXPECT_FALSE(child->parent()); |
| 165 | 165 |
| 166 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_host_->SetRootLayer(parent)); | 166 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_host_->SetRootLayer(parent)); |
| 167 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, parent->AddChild(child)); | 167 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, parent->AddChild(child)); |
| 168 | 168 |
| 169 ASSERT_EQ(1U, parent->children().size()); | 169 ASSERT_EQ(1U, parent->children().size()); |
| 170 EXPECT_EQ(child.get(), parent->children()[0]); | 170 EXPECT_EQ(child.get(), parent->children()[0].get()); |
| 171 EXPECT_EQ(parent.get(), child->parent()); | 171 EXPECT_EQ(parent.get(), child->parent()); |
| 172 EXPECT_EQ(parent.get(), child->RootLayer()); | 172 EXPECT_EQ(parent.get(), child->RootLayer()); |
| 173 | 173 |
| 174 EXPECT_SET_NEEDS_FULL_TREE_SYNC(AtLeast(1), child->RemoveFromParent()); | 174 EXPECT_SET_NEEDS_FULL_TREE_SYNC(AtLeast(1), child->RemoveFromParent()); |
| 175 } | 175 } |
| 176 | 176 |
| 177 TEST_F(LayerTest, AddSameChildTwice) { | 177 TEST_F(LayerTest, AddSameChildTwice) { |
| 178 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(AtLeast(1)); | 178 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(AtLeast(1)); |
| 179 | 179 |
| 180 scoped_refptr<Layer> parent = Layer::Create(); | 180 scoped_refptr<Layer> parent = Layer::Create(); |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 | 385 |
| 386 ASSERT_EQ(2U, new_parent->children().size()); | 386 ASSERT_EQ(2U, new_parent->children().size()); |
| 387 EXPECT_EQ(new_parent.get(), child1->parent()); | 387 EXPECT_EQ(new_parent.get(), child1->parent()); |
| 388 EXPECT_EQ(new_parent.get(), child2->parent()); | 388 EXPECT_EQ(new_parent.get(), child2->parent()); |
| 389 | 389 |
| 390 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_host_->SetRootLayer(NULL)); | 390 EXPECT_SET_NEEDS_FULL_TREE_SYNC(1, layer_tree_host_->SetRootLayer(NULL)); |
| 391 } | 391 } |
| 392 | 392 |
| 393 TEST_F(LayerTest, HasAncestor) { | 393 TEST_F(LayerTest, HasAncestor) { |
| 394 scoped_refptr<Layer> parent = Layer::Create(); | 394 scoped_refptr<Layer> parent = Layer::Create(); |
| 395 EXPECT_FALSE(parent->HasAncestor(parent)); | 395 EXPECT_FALSE(parent->HasAncestor(parent.get())); |
| 396 | 396 |
| 397 scoped_refptr<Layer> child = Layer::Create(); | 397 scoped_refptr<Layer> child = Layer::Create(); |
| 398 parent->AddChild(child); | 398 parent->AddChild(child); |
| 399 | 399 |
| 400 EXPECT_FALSE(child->HasAncestor(child)); | 400 EXPECT_FALSE(child->HasAncestor(child.get())); |
| 401 EXPECT_TRUE(child->HasAncestor(parent)); | 401 EXPECT_TRUE(child->HasAncestor(parent.get())); |
| 402 EXPECT_FALSE(parent->HasAncestor(child)); | 402 EXPECT_FALSE(parent->HasAncestor(child.get())); |
| 403 | 403 |
| 404 scoped_refptr<Layer> child_child = Layer::Create(); | 404 scoped_refptr<Layer> child_child = Layer::Create(); |
| 405 child->AddChild(child_child); | 405 child->AddChild(child_child); |
| 406 | 406 |
| 407 EXPECT_FALSE(child_child->HasAncestor(child_child)); | 407 EXPECT_FALSE(child_child->HasAncestor(child_child.get())); |
| 408 EXPECT_TRUE(child_child->HasAncestor(parent)); | 408 EXPECT_TRUE(child_child->HasAncestor(parent.get())); |
| 409 EXPECT_TRUE(child_child->HasAncestor(child)); | 409 EXPECT_TRUE(child_child->HasAncestor(child.get())); |
| 410 EXPECT_FALSE(parent->HasAncestor(child)); | 410 EXPECT_FALSE(parent->HasAncestor(child.get())); |
| 411 EXPECT_FALSE(parent->HasAncestor(child_child)); | 411 EXPECT_FALSE(parent->HasAncestor(child_child.get())); |
| 412 } | 412 } |
| 413 | 413 |
| 414 TEST_F(LayerTest, GetRootLayerAfterTreeManipulations) { | 414 TEST_F(LayerTest, GetRootLayerAfterTreeManipulations) { |
| 415 CreateSimpleTestTree(); | 415 CreateSimpleTestTree(); |
| 416 | 416 |
| 417 // For this test we don't care about SetNeedsFullTreeSync calls. | 417 // For this test we don't care about SetNeedsFullTreeSync calls. |
| 418 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(AnyNumber()); | 418 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(AnyNumber()); |
| 419 | 419 |
| 420 scoped_refptr<Layer> child4 = Layer::Create(); | 420 scoped_refptr<Layer> child4 = Layer::Create(); |
| 421 | 421 |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 scoped_refptr<Layer> replica_mask = Layer::Create(); | 775 scoped_refptr<Layer> replica_mask = Layer::Create(); |
| 776 scoped_refptr<Layer> mask_replacement = Layer::Create(); | 776 scoped_refptr<Layer> mask_replacement = Layer::Create(); |
| 777 scoped_refptr<Layer> replica_replacement = Layer::Create(); | 777 scoped_refptr<Layer> replica_replacement = Layer::Create(); |
| 778 scoped_refptr<Layer> replica_mask_replacement = Layer::Create(); | 778 scoped_refptr<Layer> replica_mask_replacement = Layer::Create(); |
| 779 | 779 |
| 780 parent->AddChild(child); | 780 parent->AddChild(child); |
| 781 child->SetMaskLayer(mask.get()); | 781 child->SetMaskLayer(mask.get()); |
| 782 child->SetReplicaLayer(replica.get()); | 782 child->SetReplicaLayer(replica.get()); |
| 783 replica->SetMaskLayer(replica_mask.get()); | 783 replica->SetMaskLayer(replica_mask.get()); |
| 784 | 784 |
| 785 EXPECT_EQ(parent, child->parent()); | 785 EXPECT_EQ(parent.get(), child->parent()); |
| 786 EXPECT_EQ(child, mask->parent()); | 786 EXPECT_EQ(child.get(), mask->parent()); |
| 787 EXPECT_EQ(child, replica->parent()); | 787 EXPECT_EQ(child.get(), replica->parent()); |
| 788 EXPECT_EQ(replica, replica_mask->parent()); | 788 EXPECT_EQ(replica.get(), replica_mask->parent()); |
| 789 | 789 |
| 790 replica->SetMaskLayer(replica_mask_replacement.get()); | 790 replica->SetMaskLayer(replica_mask_replacement.get()); |
| 791 EXPECT_EQ(NULL, replica_mask->parent()); | 791 EXPECT_EQ(NULL, replica_mask->parent()); |
| 792 EXPECT_EQ(replica, replica_mask_replacement->parent()); | 792 EXPECT_EQ(replica.get(), replica_mask_replacement->parent()); |
| 793 | 793 |
| 794 child->SetMaskLayer(mask_replacement.get()); | 794 child->SetMaskLayer(mask_replacement.get()); |
| 795 EXPECT_EQ(NULL, mask->parent()); | 795 EXPECT_EQ(NULL, mask->parent()); |
| 796 EXPECT_EQ(child, mask_replacement->parent()); | 796 EXPECT_EQ(child.get(), mask_replacement->parent()); |
| 797 | 797 |
| 798 child->SetReplicaLayer(replica_replacement.get()); | 798 child->SetReplicaLayer(replica_replacement.get()); |
| 799 EXPECT_EQ(NULL, replica->parent()); | 799 EXPECT_EQ(NULL, replica->parent()); |
| 800 EXPECT_EQ(child, replica_replacement->parent()); | 800 EXPECT_EQ(child.get(), replica_replacement->parent()); |
| 801 | 801 |
| 802 EXPECT_EQ(replica, replica->mask_layer()->parent()); | 802 EXPECT_EQ(replica.get(), replica->mask_layer()->parent()); |
| 803 } | 803 } |
| 804 | 804 |
| 805 TEST_F(LayerTest, CheckTranformIsInvertible) { | 805 TEST_F(LayerTest, CheckTranformIsInvertible) { |
| 806 scoped_refptr<Layer> layer = Layer::Create(); | 806 scoped_refptr<Layer> layer = Layer::Create(); |
| 807 scoped_ptr<LayerImpl> impl_layer = | 807 scoped_ptr<LayerImpl> impl_layer = |
| 808 LayerImpl::Create(host_impl_.active_tree(), 1); | 808 LayerImpl::Create(host_impl_.active_tree(), 1); |
| 809 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(1); | 809 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(1); |
| 810 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); | 810 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); |
| 811 layer_tree_host_->SetRootLayer(layer); | 811 layer_tree_host_->SetRootLayer(layer); |
| 812 | 812 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 | 849 |
| 850 layer->SetTransform(singular_transform); | 850 layer->SetTransform(singular_transform); |
| 851 layer->PushPropertiesTo(impl_layer.get()); | 851 layer->PushPropertiesTo(impl_layer.get()); |
| 852 | 852 |
| 853 EXPECT_FALSE(layer->transform_is_invertible()); | 853 EXPECT_FALSE(layer->transform_is_invertible()); |
| 854 EXPECT_FALSE(impl_layer->transform_is_invertible()); | 854 EXPECT_FALSE(impl_layer->transform_is_invertible()); |
| 855 | 855 |
| 856 gfx::Transform identity_transform; | 856 gfx::Transform identity_transform; |
| 857 | 857 |
| 858 layer->SetTransform(identity_transform); | 858 layer->SetTransform(identity_transform); |
| 859 static_cast<LayerAnimationValueObserver*>(layer) | 859 static_cast<LayerAnimationValueObserver*>(layer.get()) |
| 860 ->OnTransformAnimated(singular_transform); | 860 ->OnTransformAnimated(singular_transform); |
| 861 layer->PushPropertiesTo(impl_layer.get()); | 861 layer->PushPropertiesTo(impl_layer.get()); |
| 862 EXPECT_FALSE(layer->transform_is_invertible()); | 862 EXPECT_FALSE(layer->transform_is_invertible()); |
| 863 EXPECT_FALSE(impl_layer->transform_is_invertible()); | 863 EXPECT_FALSE(impl_layer->transform_is_invertible()); |
| 864 | 864 |
| 865 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); | 865 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); |
| 866 } | 866 } |
| 867 | 867 |
| 868 class LayerTreeHostFactory { | 868 class LayerTreeHostFactory { |
| 869 public: | 869 public: |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1191 root_layer->AddChild(becomes_not_draws_content); | 1191 root_layer->AddChild(becomes_not_draws_content); |
| 1192 EXPECT_EQ(0, root_layer->NumDescendantsThatDrawContent()); | 1192 EXPECT_EQ(0, root_layer->NumDescendantsThatDrawContent()); |
| 1193 | 1193 |
| 1194 becomes_draws_content->SetIsDrawable(true); | 1194 becomes_draws_content->SetIsDrawable(true); |
| 1195 root_layer->AddChild(becomes_draws_content); | 1195 root_layer->AddChild(becomes_draws_content); |
| 1196 EXPECT_EQ(1, root_layer->NumDescendantsThatDrawContent()); | 1196 EXPECT_EQ(1, root_layer->NumDescendantsThatDrawContent()); |
| 1197 } | 1197 } |
| 1198 | 1198 |
| 1199 } // namespace | 1199 } // namespace |
| 1200 } // namespace cc | 1200 } // namespace cc |
| OLD | NEW |