| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/threading/thread_task_runner_handle.h" | 9 #include "base/threading/thread_task_runner_handle.h" |
| 10 #include "cc/animation/animation_host.h" | 10 #include "cc/animation/animation_host.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "cc/test/fake_layer_tree_host_client.h" | 24 #include "cc/test/fake_layer_tree_host_client.h" |
| 25 #include "cc/test/fake_layer_tree_host_impl.h" | 25 #include "cc/test/fake_layer_tree_host_impl.h" |
| 26 #include "cc/test/geometry_test_utils.h" | 26 #include "cc/test/geometry_test_utils.h" |
| 27 #include "cc/test/layer_internals_for_test.h" | 27 #include "cc/test/layer_internals_for_test.h" |
| 28 #include "cc/test/layer_test_common.h" | 28 #include "cc/test/layer_test_common.h" |
| 29 #include "cc/test/test_gpu_memory_buffer_manager.h" | 29 #include "cc/test/test_gpu_memory_buffer_manager.h" |
| 30 #include "cc/test/test_shared_bitmap_manager.h" | 30 #include "cc/test/test_shared_bitmap_manager.h" |
| 31 #include "cc/test/test_task_graph_runner.h" | 31 #include "cc/test/test_task_graph_runner.h" |
| 32 #include "cc/trees/layer_tree_host.h" | 32 #include "cc/trees/layer_tree_host.h" |
| 33 #include "cc/trees/single_thread_proxy.h" | 33 #include "cc/trees/single_thread_proxy.h" |
| 34 #include "cc/trees/transform_node.h" |
| 34 #include "testing/gmock/include/gmock/gmock.h" | 35 #include "testing/gmock/include/gmock/gmock.h" |
| 35 #include "testing/gtest/include/gtest/gtest.h" | 36 #include "testing/gtest/include/gtest/gtest.h" |
| 36 #include "third_party/skia/include/core/SkColor.h" | 37 #include "third_party/skia/include/core/SkColor.h" |
| 37 #include "ui/gfx/geometry/point3_f.h" | 38 #include "ui/gfx/geometry/point3_f.h" |
| 38 #include "ui/gfx/geometry/point_f.h" | 39 #include "ui/gfx/geometry/point_f.h" |
| 39 #include "ui/gfx/geometry/scroll_offset.h" | 40 #include "ui/gfx/geometry/scroll_offset.h" |
| 40 #include "ui/gfx/geometry/size.h" | 41 #include "ui/gfx/geometry/size.h" |
| 41 #include "ui/gfx/geometry/vector2d_f.h" | 42 #include "ui/gfx/geometry/vector2d_f.h" |
| 42 #include "ui/gfx/transform.h" | 43 #include "ui/gfx/transform.h" |
| 43 | 44 |
| (...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1146 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED( | 1147 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED( |
| 1147 root->SetBackgroundFilters(arbitrary_filters)); | 1148 root->SetBackgroundFilters(arbitrary_filters)); |
| 1148 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( | 1149 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( |
| 1149 root->PushPropertiesTo(root_impl.get())); | 1150 root->PushPropertiesTo(root_impl.get())); |
| 1150 | 1151 |
| 1151 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); | 1152 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); |
| 1152 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); | 1153 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); |
| 1153 root->SetPosition(arbitrary_point_f); | 1154 root->SetPosition(arbitrary_point_f); |
| 1154 TransformNode* node = layer_tree_host_->property_trees()->transform_tree.Node( | 1155 TransformNode* node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1155 root->transform_tree_index()); | 1156 root->transform_tree_index()); |
| 1156 EXPECT_TRUE(node->data.transform_changed); | 1157 EXPECT_TRUE(node->transform_changed); |
| 1157 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( | 1158 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( |
| 1158 root->PushPropertiesTo(root_impl.get()); | 1159 root->PushPropertiesTo(root_impl.get()); |
| 1159 child->PushPropertiesTo(child_impl.get()); | 1160 child->PushPropertiesTo(child_impl.get()); |
| 1160 child2->PushPropertiesTo(child2_impl.get()); | 1161 child2->PushPropertiesTo(child2_impl.get()); |
| 1161 grand_child->PushPropertiesTo(grand_child_impl.get()); | 1162 grand_child->PushPropertiesTo(grand_child_impl.get()); |
| 1162 layer_tree_host_->property_trees()->ResetAllChangeTracking()); | 1163 layer_tree_host_->property_trees()->ResetAllChangeTracking()); |
| 1163 EXPECT_FALSE(node->data.transform_changed); | 1164 EXPECT_FALSE(node->transform_changed); |
| 1164 | 1165 |
| 1165 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); | 1166 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); |
| 1166 child->SetPosition(arbitrary_point_f); | 1167 child->SetPosition(arbitrary_point_f); |
| 1167 node = layer_tree_host_->property_trees()->transform_tree.Node( | 1168 node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1168 child->transform_tree_index()); | 1169 child->transform_tree_index()); |
| 1169 EXPECT_TRUE(node->data.transform_changed); | 1170 EXPECT_TRUE(node->transform_changed); |
| 1170 // child2 is not in the subtree of child, but its scroll parent is. So, its | 1171 // child2 is not in the subtree of child, but its scroll parent is. So, its |
| 1171 // to_screen will be effected by change in position of child2. | 1172 // to_screen will be effected by change in position of child2. |
| 1172 layer_tree_host_->property_trees()->transform_tree.UpdateTransforms( | 1173 layer_tree_host_->property_trees()->transform_tree.UpdateTransforms( |
| 1173 child2->transform_tree_index()); | 1174 child2->transform_tree_index()); |
| 1174 node = layer_tree_host_->property_trees()->transform_tree.Node( | 1175 node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1175 child2->transform_tree_index()); | 1176 child2->transform_tree_index()); |
| 1176 EXPECT_TRUE(node->data.transform_changed); | 1177 EXPECT_TRUE(node->transform_changed); |
| 1177 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( | 1178 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( |
| 1178 child->PushPropertiesTo(child_impl.get()); | 1179 child->PushPropertiesTo(child_impl.get()); |
| 1179 grand_child->PushPropertiesTo(grand_child_impl.get()); | 1180 grand_child->PushPropertiesTo(grand_child_impl.get()); |
| 1180 layer_tree_host_->property_trees()->ResetAllChangeTracking()); | 1181 layer_tree_host_->property_trees()->ResetAllChangeTracking()); |
| 1181 node = layer_tree_host_->property_trees()->transform_tree.Node( | 1182 node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1182 child->transform_tree_index()); | 1183 child->transform_tree_index()); |
| 1183 EXPECT_FALSE(node->data.transform_changed); | 1184 EXPECT_FALSE(node->transform_changed); |
| 1184 | 1185 |
| 1185 gfx::Point3F arbitrary_point_3f = gfx::Point3F(0.125f, 0.25f, 0.f); | 1186 gfx::Point3F arbitrary_point_3f = gfx::Point3F(0.125f, 0.25f, 0.f); |
| 1186 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); | 1187 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); |
| 1187 root->SetTransformOrigin(arbitrary_point_3f); | 1188 root->SetTransformOrigin(arbitrary_point_3f); |
| 1188 node = layer_tree_host_->property_trees()->transform_tree.Node( | 1189 node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1189 root->transform_tree_index()); | 1190 root->transform_tree_index()); |
| 1190 EXPECT_TRUE(node->data.transform_changed); | 1191 EXPECT_TRUE(node->transform_changed); |
| 1191 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( | 1192 EXECUTE_AND_VERIFY_SUBTREE_CHANGES_RESET( |
| 1192 root->PushPropertiesTo(root_impl.get()); | 1193 root->PushPropertiesTo(root_impl.get()); |
| 1193 child->PushPropertiesTo(child_impl.get()); | 1194 child->PushPropertiesTo(child_impl.get()); |
| 1194 child2->PushPropertiesTo(child2_impl.get()); | 1195 child2->PushPropertiesTo(child2_impl.get()); |
| 1195 grand_child->PushPropertiesTo(grand_child_impl.get()); | 1196 grand_child->PushPropertiesTo(grand_child_impl.get()); |
| 1196 layer_tree_host_->property_trees()->ResetAllChangeTracking()); | 1197 layer_tree_host_->property_trees()->ResetAllChangeTracking()); |
| 1197 | 1198 |
| 1198 gfx::Transform arbitrary_transform; | 1199 gfx::Transform arbitrary_transform; |
| 1199 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); | 1200 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); |
| 1200 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); | 1201 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(1); |
| 1201 root->SetTransform(arbitrary_transform); | 1202 root->SetTransform(arbitrary_transform); |
| 1202 node = layer_tree_host_->property_trees()->transform_tree.Node( | 1203 node = layer_tree_host_->property_trees()->transform_tree.Node( |
| 1203 root->transform_tree_index()); | 1204 root->transform_tree_index()); |
| 1204 EXPECT_TRUE(node->data.transform_changed); | 1205 EXPECT_TRUE(node->transform_changed); |
| 1205 } | 1206 } |
| 1206 | 1207 |
| 1207 TEST_F(LayerTest, AddAndRemoveChild) { | 1208 TEST_F(LayerTest, AddAndRemoveChild) { |
| 1208 scoped_refptr<Layer> parent = Layer::Create(); | 1209 scoped_refptr<Layer> parent = Layer::Create(); |
| 1209 scoped_refptr<Layer> child = Layer::Create(); | 1210 scoped_refptr<Layer> child = Layer::Create(); |
| 1210 | 1211 |
| 1211 // Upon creation, layers should not have children or parent. | 1212 // Upon creation, layers should not have children or parent. |
| 1212 ASSERT_EQ(0U, parent->children().size()); | 1213 ASSERT_EQ(0U, parent->children().size()); |
| 1213 EXPECT_FALSE(child->parent()); | 1214 EXPECT_FALSE(child->parent()); |
| 1214 | 1215 |
| (...skipping 1318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2533 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties()); | 2534 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties()); |
| 2534 | 2535 |
| 2535 test_layer->PushPropertiesTo(impl_layer.get()); | 2536 test_layer->PushPropertiesTo(impl_layer.get()); |
| 2536 | 2537 |
| 2537 EXPECT_EQ(ElementId(2, 0), impl_layer->element_id()); | 2538 EXPECT_EQ(ElementId(2, 0), impl_layer->element_id()); |
| 2538 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties()); | 2539 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties()); |
| 2539 } | 2540 } |
| 2540 | 2541 |
| 2541 } // namespace | 2542 } // namespace |
| 2542 } // namespace cc | 2543 } // namespace cc |
| OLD | NEW |