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.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 LayerList update_layer_list; | 671 LayerList update_layer_list; |
672 | 672 |
673 { | 673 { |
674 base::AutoReset<bool> update_property_trees(&in_update_property_trees_, | 674 base::AutoReset<bool> update_property_trees(&in_update_property_trees_, |
675 true); | 675 true); |
676 TRACE_EVENT0("cc", | 676 TRACE_EVENT0("cc", |
677 "LayerTreeHostInProcess::UpdateLayers::BuildPropertyTrees"); | 677 "LayerTreeHostInProcess::UpdateLayers::BuildPropertyTrees"); |
678 TRACE_EVENT0( | 678 TRACE_EVENT0( |
679 TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), | 679 TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"), |
680 "LayerTreeHostInProcessCommon::ComputeVisibleRectsWithPropertyTrees"); | 680 "LayerTreeHostInProcessCommon::ComputeVisibleRectsWithPropertyTrees"); |
681 PropertyTreeBuilder::PreCalculateMetaInformation(root_layer); | |
682 bool can_render_to_separate_surface = true; | 681 bool can_render_to_separate_surface = true; |
683 PropertyTrees* property_trees = &property_trees_; | 682 PropertyTrees* property_trees = &property_trees_; |
684 if (!settings_.use_layer_lists) { | 683 if (!settings_.use_layer_lists) { |
685 // If use_layer_lists is set, then the property trees should have been | 684 // If use_layer_lists is set, then the property trees should have been |
686 // built by the client already. | 685 // built by the client already. |
687 PropertyTreeBuilder::BuildPropertyTrees( | 686 PropertyTreeBuilder::BuildPropertyTrees( |
688 root_layer, page_scale_layer, inner_viewport_scroll_layer(), | 687 root_layer, page_scale_layer, inner_viewport_scroll_layer(), |
689 outer_viewport_scroll_layer(), overscroll_elasticity_layer(), | 688 outer_viewport_scroll_layer(), overscroll_elasticity_layer(), |
690 elastic_overscroll_, page_scale_factor_, device_scale_factor_, | 689 elastic_overscroll_, page_scale_factor_, device_scale_factor_, |
691 gfx::Rect(device_viewport_size_), identity_transform, property_trees); | 690 gfx::Rect(device_viewport_size_), identity_transform, property_trees); |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 | 1062 |
1064 std::unordered_set<Layer*>& LayerTreeHost::LayersThatShouldPushProperties() { | 1063 std::unordered_set<Layer*>& LayerTreeHost::LayersThatShouldPushProperties() { |
1065 return layers_that_should_push_properties_; | 1064 return layers_that_should_push_properties_; |
1066 } | 1065 } |
1067 | 1066 |
1068 bool LayerTreeHost::LayerNeedsPushPropertiesForTesting(Layer* layer) const { | 1067 bool LayerTreeHost::LayerNeedsPushPropertiesForTesting(Layer* layer) const { |
1069 return layers_that_should_push_properties_.find(layer) != | 1068 return layers_that_should_push_properties_.find(layer) != |
1070 layers_that_should_push_properties_.end(); | 1069 layers_that_should_push_properties_.end(); |
1071 } | 1070 } |
1072 | 1071 |
1073 void LayerTreeHost::SetNeedsMetaInfoRecomputation(bool needs_recomputation) { | |
1074 needs_meta_info_recomputation_ = needs_recomputation; | |
1075 } | |
1076 | |
1077 void LayerTreeHost::SetPageScaleFromImplSide(float page_scale) { | 1072 void LayerTreeHost::SetPageScaleFromImplSide(float page_scale) { |
1078 DCHECK(CommitRequested()); | 1073 DCHECK(CommitRequested()); |
1079 page_scale_factor_ = page_scale; | 1074 page_scale_factor_ = page_scale; |
1080 SetPropertyTreesNeedRebuild(); | 1075 SetPropertyTreesNeedRebuild(); |
1081 } | 1076 } |
1082 | 1077 |
1083 void LayerTreeHost::SetElasticOverscrollFromImplSide( | 1078 void LayerTreeHost::SetElasticOverscrollFromImplSide( |
1084 gfx::Vector2dF elastic_overscroll) { | 1079 gfx::Vector2dF elastic_overscroll) { |
1085 DCHECK(CommitRequested()); | 1080 DCHECK(CommitRequested()); |
1086 elastic_overscroll_ = elastic_overscroll; | 1081 elastic_overscroll_ = elastic_overscroll; |
1087 } | 1082 } |
1088 | 1083 |
1089 void LayerTreeHost::UpdateHudLayer(bool show_hud_info) { | 1084 void LayerTreeHost::UpdateHudLayer(bool show_hud_info) { |
1090 if (show_hud_info) { | 1085 if (show_hud_info) { |
1091 if (!hud_layer_.get()) { | 1086 if (!hud_layer_.get()) { |
1092 hud_layer_ = HeadsUpDisplayLayer::Create(); | 1087 hud_layer_ = HeadsUpDisplayLayer::Create(); |
1093 } | 1088 } |
1094 | 1089 |
1095 if (root_layer_.get() && !hud_layer_->parent()) | 1090 if (root_layer_.get() && !hud_layer_->parent()) |
1096 root_layer_->AddChild(hud_layer_); | 1091 root_layer_->AddChild(hud_layer_); |
1097 } else if (hud_layer_.get()) { | 1092 } else if (hud_layer_.get()) { |
1098 hud_layer_->RemoveFromParent(); | 1093 hud_layer_->RemoveFromParent(); |
1099 hud_layer_ = nullptr; | 1094 hud_layer_ = nullptr; |
1100 } | 1095 } |
1101 } | 1096 } |
1102 | 1097 |
1103 void LayerTreeHost::SetNeedsFullTreeSync() { | 1098 void LayerTreeHost::SetNeedsFullTreeSync() { |
1104 needs_full_tree_sync_ = true; | 1099 needs_full_tree_sync_ = true; |
1105 needs_meta_info_recomputation_ = true; | |
1106 | |
1107 property_trees_.needs_rebuild = true; | 1100 property_trees_.needs_rebuild = true; |
1108 SetNeedsCommit(); | 1101 SetNeedsCommit(); |
1109 } | 1102 } |
1110 | 1103 |
1111 void LayerTreeHost::SetPropertyTreesNeedRebuild() { | 1104 void LayerTreeHost::SetPropertyTreesNeedRebuild() { |
1112 property_trees_.needs_rebuild = true; | 1105 property_trees_.needs_rebuild = true; |
1113 SetNeedsUpdateLayers(); | 1106 SetNeedsUpdateLayers(); |
1114 } | 1107 } |
1115 | 1108 |
1116 void LayerTreeHost::PushPropertiesTo(LayerTreeImpl* tree_impl) { | 1109 void LayerTreeHost::PushPropertiesTo(LayerTreeImpl* tree_impl) { |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1223 | 1216 |
1224 static void SetElementIdForTesting(Layer* layer) { | 1217 static void SetElementIdForTesting(Layer* layer) { |
1225 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); | 1218 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); |
1226 } | 1219 } |
1227 | 1220 |
1228 void LayerTreeHost::SetElementIdsForTesting() { | 1221 void LayerTreeHost::SetElementIdsForTesting() { |
1229 LayerTreeHostCommon::CallFunctionForEveryLayer(this, SetElementIdForTesting); | 1222 LayerTreeHostCommon::CallFunctionForEveryLayer(this, SetElementIdForTesting); |
1230 } | 1223 } |
1231 | 1224 |
1232 void LayerTreeHost::BuildPropertyTreesForTesting() { | 1225 void LayerTreeHost::BuildPropertyTreesForTesting() { |
1233 PropertyTreeBuilder::PreCalculateMetaInformation(root_layer()); | |
1234 gfx::Transform identity_transform; | 1226 gfx::Transform identity_transform; |
1235 PropertyTreeBuilder::BuildPropertyTrees( | 1227 PropertyTreeBuilder::BuildPropertyTrees( |
1236 root_layer(), page_scale_layer(), inner_viewport_scroll_layer(), | 1228 root_layer(), page_scale_layer(), inner_viewport_scroll_layer(), |
1237 outer_viewport_scroll_layer(), overscroll_elasticity_layer(), | 1229 outer_viewport_scroll_layer(), overscroll_elasticity_layer(), |
1238 elastic_overscroll(), page_scale_factor(), device_scale_factor(), | 1230 elastic_overscroll(), page_scale_factor(), device_scale_factor(), |
1239 gfx::Rect(device_viewport_size()), identity_transform, property_trees()); | 1231 gfx::Rect(device_viewport_size()), identity_transform, property_trees()); |
1240 } | 1232 } |
1241 | 1233 |
1242 bool LayerTreeHost::IsElementInList(ElementId element_id, | 1234 bool LayerTreeHost::IsElementInList(ElementId element_id, |
1243 ElementListType list_type) const { | 1235 ElementListType list_type) const { |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1426 LayerListReverseIterator<Layer> LayerTreeHost::rend() { | 1418 LayerListReverseIterator<Layer> LayerTreeHost::rend() { |
1427 return LayerListReverseIterator<Layer>(nullptr); | 1419 return LayerListReverseIterator<Layer>(nullptr); |
1428 } | 1420 } |
1429 | 1421 |
1430 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { | 1422 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { |
1431 for (auto* layer : *this) | 1423 for (auto* layer : *this) |
1432 layer->SetNeedsDisplay(); | 1424 layer->SetNeedsDisplay(); |
1433 } | 1425 } |
1434 | 1426 |
1435 } // namespace cc | 1427 } // namespace cc |
OLD | NEW |