| 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/trees/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 void ExecuteCalculateDrawProperties(LayerType* root_layer, | 165 void ExecuteCalculateDrawProperties(LayerType* root_layer, |
| 166 float device_scale_factor) { | 166 float device_scale_factor) { |
| 167 LayerType* page_scale_application_layer = nullptr; | 167 LayerType* page_scale_application_layer = nullptr; |
| 168 ExecuteCalculateDrawProperties(root_layer, device_scale_factor, 1.f, | 168 ExecuteCalculateDrawProperties(root_layer, device_scale_factor, 1.f, |
| 169 page_scale_application_layer); | 169 page_scale_application_layer); |
| 170 } | 170 } |
| 171 | 171 |
| 172 const LayerList* GetUpdateLayerList() { return &update_layer_list_; } | 172 const LayerList* GetUpdateLayerList() { return &update_layer_list_; } |
| 173 | 173 |
| 174 void ExecuteCalculateDrawPropertiesWithPropertyTrees(Layer* root_layer) { | 174 void ExecuteCalculateDrawPropertiesWithPropertyTrees(Layer* root_layer) { |
| 175 DCHECK(root_layer->GetLayerTree()); | 175 DCHECK(root_layer->layer_tree_host()); |
| 176 PropertyTreeBuilder::PreCalculateMetaInformation(root_layer); | 176 PropertyTreeBuilder::PreCalculateMetaInformation(root_layer); |
| 177 | 177 |
| 178 bool can_render_to_separate_surface = true; | 178 bool can_render_to_separate_surface = true; |
| 179 | 179 |
| 180 const Layer* page_scale_layer = | 180 const Layer* page_scale_layer = |
| 181 root_layer->GetLayerTree()->page_scale_layer(); | 181 root_layer->layer_tree_host()->page_scale_layer(); |
| 182 Layer* inner_viewport_scroll_layer = | 182 Layer* inner_viewport_scroll_layer = |
| 183 root_layer->GetLayerTree()->inner_viewport_scroll_layer(); | 183 root_layer->layer_tree_host()->inner_viewport_scroll_layer(); |
| 184 Layer* outer_viewport_scroll_layer = | 184 Layer* outer_viewport_scroll_layer = |
| 185 root_layer->GetLayerTree()->outer_viewport_scroll_layer(); | 185 root_layer->layer_tree_host()->outer_viewport_scroll_layer(); |
| 186 const Layer* overscroll_elasticity_layer = | 186 const Layer* overscroll_elasticity_layer = |
| 187 root_layer->GetLayerTree()->overscroll_elasticity_layer(); | 187 root_layer->layer_tree_host()->overscroll_elasticity_layer(); |
| 188 gfx::Vector2dF elastic_overscroll = | 188 gfx::Vector2dF elastic_overscroll = |
| 189 root_layer->GetLayerTree()->elastic_overscroll(); | 189 root_layer->layer_tree_host()->elastic_overscroll(); |
| 190 float page_scale_factor = 1.f; | 190 float page_scale_factor = 1.f; |
| 191 float device_scale_factor = 1.f; | 191 float device_scale_factor = 1.f; |
| 192 gfx::Size device_viewport_size = | 192 gfx::Size device_viewport_size = |
| 193 gfx::Size(root_layer->bounds().width() * device_scale_factor, | 193 gfx::Size(root_layer->bounds().width() * device_scale_factor, |
| 194 root_layer->bounds().height() * device_scale_factor); | 194 root_layer->bounds().height() * device_scale_factor); |
| 195 PropertyTrees* property_trees = | 195 PropertyTrees* property_trees = |
| 196 root_layer->GetLayerTree()->property_trees(); | 196 root_layer->layer_tree_host()->property_trees(); |
| 197 update_layer_list_.clear(); | 197 update_layer_list_.clear(); |
| 198 PropertyTreeBuilder::BuildPropertyTrees( | 198 PropertyTreeBuilder::BuildPropertyTrees( |
| 199 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 199 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 200 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 200 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 201 elastic_overscroll, page_scale_factor, device_scale_factor, | 201 elastic_overscroll, page_scale_factor, device_scale_factor, |
| 202 gfx::Rect(device_viewport_size), gfx::Transform(), property_trees); | 202 gfx::Rect(device_viewport_size), gfx::Transform(), property_trees); |
| 203 draw_property_utils::UpdatePropertyTrees(property_trees, | 203 draw_property_utils::UpdatePropertyTrees(property_trees, |
| 204 can_render_to_separate_surface); | 204 can_render_to_separate_surface); |
| 205 draw_property_utils::FindLayersThatNeedUpdates( | 205 draw_property_utils::FindLayersThatNeedUpdates( |
| 206 root_layer->layer_tree_host(), property_trees->transform_tree, | 206 root_layer->layer_tree_host(), property_trees->transform_tree, |
| (...skipping 6715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6922 root->SetBounds(gfx::Size(50, 50)); | 6922 root->SetBounds(gfx::Size(50, 50)); |
| 6923 container->SetBounds(gfx::Size(50, 50)); | 6923 container->SetBounds(gfx::Size(50, 50)); |
| 6924 scroller->SetBounds(gfx::Size(50, 50)); | 6924 scroller->SetBounds(gfx::Size(50, 50)); |
| 6925 fixed_pos->SetBounds(gfx::Size(50, 50)); | 6925 fixed_pos->SetBounds(gfx::Size(50, 50)); |
| 6926 | 6926 |
| 6927 gfx::Transform rotate; | 6927 gfx::Transform rotate; |
| 6928 rotate.RotateAboutXAxis(20); | 6928 rotate.RotateAboutXAxis(20); |
| 6929 container->SetTransform(rotate); | 6929 container->SetTransform(rotate); |
| 6930 | 6930 |
| 6931 ExecuteCalculateDrawProperties(root.get()); | 6931 ExecuteCalculateDrawProperties(root.get()); |
| 6932 TransformTree& tree = root->GetLayerTree()->property_trees()->transform_tree; | 6932 TransformTree& tree = |
| 6933 root->layer_tree_host()->property_trees()->transform_tree; |
| 6933 gfx::Transform transform; | 6934 gfx::Transform transform; |
| 6934 tree.ComputeTranslation(fixed_pos->transform_tree_index(), | 6935 tree.ComputeTranslation(fixed_pos->transform_tree_index(), |
| 6935 container->transform_tree_index(), &transform); | 6936 container->transform_tree_index(), &transform); |
| 6936 EXPECT_TRUE(transform.IsIdentity()); | 6937 EXPECT_TRUE(transform.IsIdentity()); |
| 6937 } | 6938 } |
| 6938 | 6939 |
| 6939 TEST_F(LayerTreeHostCommonTest, ScrollSnappingWithFixedPosChild) { | 6940 TEST_F(LayerTreeHostCommonTest, ScrollSnappingWithFixedPosChild) { |
| 6940 // This test verifies that a fixed pos child of a scrolling layer doesn't get | 6941 // This test verifies that a fixed pos child of a scrolling layer doesn't get |
| 6941 // snapped to integer coordinates. | 6942 // snapped to integer coordinates. |
| 6942 // | 6943 // |
| (...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7844 | 7845 |
| 7845 inner_viewport_scroll_layer->SetScrollClipLayerId( | 7846 inner_viewport_scroll_layer->SetScrollClipLayerId( |
| 7846 inner_viewport_container_layer->id()); | 7847 inner_viewport_container_layer->id()); |
| 7847 outer_viewport_scroll_layer->SetScrollClipLayerId( | 7848 outer_viewport_scroll_layer->SetScrollClipLayerId( |
| 7848 outer_viewport_container_layer->id()); | 7849 outer_viewport_container_layer->id()); |
| 7849 | 7850 |
| 7850 inner_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); | 7851 inner_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); |
| 7851 outer_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); | 7852 outer_viewport_scroll_layer->SetIsContainerForFixedPositionLayers(true); |
| 7852 | 7853 |
| 7853 host()->SetRootLayer(root); | 7854 host()->SetRootLayer(root); |
| 7854 host()->GetLayerTree()->RegisterViewportLayers( | 7855 host()->RegisterViewportLayers(nullptr, root, inner_viewport_scroll_layer, |
| 7855 nullptr, root, inner_viewport_scroll_layer, outer_viewport_scroll_layer); | 7856 outer_viewport_scroll_layer); |
| 7856 | 7857 |
| 7857 scoped_refptr<Layer> fixed_to_inner = Layer::Create(); | 7858 scoped_refptr<Layer> fixed_to_inner = Layer::Create(); |
| 7858 scoped_refptr<Layer> fixed_to_outer = Layer::Create(); | 7859 scoped_refptr<Layer> fixed_to_outer = Layer::Create(); |
| 7859 | 7860 |
| 7860 inner_viewport_scroll_layer->AddChild(fixed_to_inner); | 7861 inner_viewport_scroll_layer->AddChild(fixed_to_inner); |
| 7861 outer_viewport_scroll_layer->AddChild(fixed_to_outer); | 7862 outer_viewport_scroll_layer->AddChild(fixed_to_outer); |
| 7862 | 7863 |
| 7863 LayerPositionConstraint fixed_to_right; | 7864 LayerPositionConstraint fixed_to_right; |
| 7864 fixed_to_right.set_is_fixed_position(true); | 7865 fixed_to_right.set_is_fixed_position(true); |
| 7865 fixed_to_right.set_is_fixed_to_right_edge(true); | 7866 fixed_to_right.set_is_fixed_to_right_edge(true); |
| (...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9451 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), | 9452 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), |
| 9452 animation_id, 1, TargetProperty::OPACITY); | 9453 animation_id, 1, TargetProperty::OPACITY); |
| 9453 animation->set_fill_mode(Animation::FillMode::NONE); | 9454 animation->set_fill_mode(Animation::FillMode::NONE); |
| 9454 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 9455 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
| 9455 Animation* animation_ptr = animation.get(); | 9456 Animation* animation_ptr = animation.get(); |
| 9456 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), | 9457 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), |
| 9457 std::move(animation)); | 9458 std::move(animation)); |
| 9458 | 9459 |
| 9459 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 9460 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
| 9460 | 9461 |
| 9461 EffectTree& tree = root->GetLayerTree()->property_trees()->effect_tree; | 9462 EffectTree& tree = root->layer_tree_host()->property_trees()->effect_tree; |
| 9462 EffectNode* node = tree.Node(animated->effect_tree_index()); | 9463 EffectNode* node = tree.Node(animated->effect_tree_index()); |
| 9463 EXPECT_FALSE(node->is_currently_animating_opacity); | 9464 EXPECT_FALSE(node->is_currently_animating_opacity); |
| 9464 EXPECT_TRUE(node->has_potential_opacity_animation); | 9465 EXPECT_TRUE(node->has_potential_opacity_animation); |
| 9465 | 9466 |
| 9466 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); | 9467 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); |
| 9467 root->layer_tree_host()->AnimateLayers( | 9468 root->layer_tree_host()->AnimateLayers( |
| 9468 base::TimeTicks::FromInternalValue(std::numeric_limits<int64_t>::max())); | 9469 base::TimeTicks::FromInternalValue(std::numeric_limits<int64_t>::max())); |
| 9469 node = tree.Node(animated->effect_tree_index()); | 9470 node = tree.Node(animated->effect_tree_index()); |
| 9470 EXPECT_TRUE(node->is_currently_animating_opacity); | 9471 EXPECT_TRUE(node->is_currently_animating_opacity); |
| 9471 EXPECT_TRUE(node->has_potential_opacity_animation); | 9472 EXPECT_TRUE(node->has_potential_opacity_animation); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9508 std::unique_ptr<Animation> animation( | 9509 std::unique_ptr<Animation> animation( |
| 9509 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); | 9510 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); |
| 9510 animation->set_fill_mode(Animation::FillMode::NONE); | 9511 animation->set_fill_mode(Animation::FillMode::NONE); |
| 9511 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 9512 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
| 9512 Animation* animation_ptr = animation.get(); | 9513 Animation* animation_ptr = animation.get(); |
| 9513 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), | 9514 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), |
| 9514 std::move(animation)); | 9515 std::move(animation)); |
| 9515 | 9516 |
| 9516 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 9517 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
| 9517 | 9518 |
| 9518 TransformTree& tree = root->GetLayerTree()->property_trees()->transform_tree; | 9519 TransformTree& tree = |
| 9520 root->layer_tree_host()->property_trees()->transform_tree; |
| 9519 TransformNode* node = tree.Node(animated->transform_tree_index()); | 9521 TransformNode* node = tree.Node(animated->transform_tree_index()); |
| 9520 EXPECT_FALSE(node->is_currently_animating); | 9522 EXPECT_FALSE(node->is_currently_animating); |
| 9521 EXPECT_TRUE(node->has_potential_animation); | 9523 EXPECT_TRUE(node->has_potential_animation); |
| 9522 | 9524 |
| 9523 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); | 9525 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); |
| 9524 root->layer_tree_host()->AnimateLayers( | 9526 root->layer_tree_host()->AnimateLayers( |
| 9525 base::TimeTicks::FromInternalValue(std::numeric_limits<int64_t>::max())); | 9527 base::TimeTicks::FromInternalValue(std::numeric_limits<int64_t>::max())); |
| 9526 node = tree.Node(animated->transform_tree_index()); | 9528 node = tree.Node(animated->transform_tree_index()); |
| 9527 EXPECT_TRUE(node->is_currently_animating); | 9529 EXPECT_TRUE(node->is_currently_animating); |
| 9528 EXPECT_TRUE(node->has_potential_animation); | 9530 EXPECT_TRUE(node->has_potential_animation); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9645 MainThreadScrollingReason::kScrollbarScrolling); | 9647 MainThreadScrollingReason::kScrollbarScrolling); |
| 9646 | 9648 |
| 9647 child7->SetScrollClipLayerId(parent3->id()); | 9649 child7->SetScrollClipLayerId(parent3->id()); |
| 9648 | 9650 |
| 9649 child8->SetScrollParent(child7.get()); | 9651 child8->SetScrollParent(child7.get()); |
| 9650 grand_child11->SetScrollClipLayerId(parent3->id()); | 9652 grand_child11->SetScrollClipLayerId(parent3->id()); |
| 9651 | 9653 |
| 9652 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); | 9654 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); |
| 9653 parent5->SetBounds(gfx::Size(10, 10)); | 9655 parent5->SetBounds(gfx::Size(10, 10)); |
| 9654 | 9656 |
| 9655 host()->GetLayerTree()->RegisterViewportLayers(nullptr, page_scale_layer, | 9657 host()->RegisterViewportLayers(nullptr, page_scale_layer, parent2, nullptr); |
| 9656 parent2, nullptr); | |
| 9657 ExecuteCalculateDrawPropertiesWithPropertyTrees(root1.get()); | 9658 ExecuteCalculateDrawPropertiesWithPropertyTrees(root1.get()); |
| 9658 | 9659 |
| 9659 const int kInvalidPropertyTreeNodeId = -1; | 9660 const int kInvalidPropertyTreeNodeId = -1; |
| 9660 const int kRootPropertyTreeNodeId = 0; | 9661 const int kRootPropertyTreeNodeId = 0; |
| 9661 | 9662 |
| 9662 // Property tree root | 9663 // Property tree root |
| 9663 ScrollTree& scroll_tree = host()->property_trees()->scroll_tree; | 9664 ScrollTree& scroll_tree = host()->property_trees()->scroll_tree; |
| 9664 PropertyTrees property_trees; | 9665 PropertyTrees property_trees; |
| 9665 property_trees.is_main_thread = true; | 9666 property_trees.is_main_thread = true; |
| 9666 property_trees.is_active = false; | 9667 property_trees.is_active = false; |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9759 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); | 9760 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); |
| 9760 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); | 9761 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); |
| 9761 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); | 9762 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); |
| 9762 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); | 9763 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); |
| 9763 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); | 9764 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); |
| 9764 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); | 9765 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); |
| 9765 } | 9766 } |
| 9766 | 9767 |
| 9767 } // namespace | 9768 } // namespace |
| 9768 } // namespace cc | 9769 } // namespace cc |
| OLD | NEW |