Chromium Code Reviews| 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_impl.h" | 5 #include "cc/trees/layer_tree_impl.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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 258 } | 258 } |
| 259 | 259 |
| 260 bool LayerTreeImpl::LayerListIsEmpty() const { | 260 bool LayerTreeImpl::LayerListIsEmpty() const { |
| 261 return layer_list_.empty(); | 261 return layer_list_.empty(); |
| 262 } | 262 } |
| 263 | 263 |
| 264 void LayerTreeImpl::SetRootLayerForTesting(std::unique_ptr<LayerImpl> layer) { | 264 void LayerTreeImpl::SetRootLayerForTesting(std::unique_ptr<LayerImpl> layer) { |
| 265 if (root_layer_for_testing_ && layer.get() != root_layer_for_testing_) | 265 if (root_layer_for_testing_ && layer.get() != root_layer_for_testing_) |
| 266 RemoveLayer(root_layer_for_testing_->id()); | 266 RemoveLayer(root_layer_for_testing_->id()); |
| 267 root_layer_for_testing_ = layer.get(); | 267 root_layer_for_testing_ = layer.get(); |
| 268 if (layer) | 268 ClearLayerList(); |
| 269 if (layer) { | |
| 269 AddLayer(std::move(layer)); | 270 AddLayer(std::move(layer)); |
| 270 BuildLayerListForTesting(); | 271 BuildLayerListForTesting(); |
| 272 } | |
| 271 layer_tree_host_impl_->OnCanDrawStateChangedForTree(); | 273 layer_tree_host_impl_->OnCanDrawStateChangedForTree(); |
| 272 } | 274 } |
| 273 | 275 |
| 274 void LayerTreeImpl::SetRootLayerFromLayerListForTesting() { | 276 void LayerTreeImpl::SetRootLayerFromLayerListForTesting() { |
| 275 root_layer_for_testing_ = layer_list_.empty() ? nullptr : layer_list_[0]; | 277 root_layer_for_testing_ = layer_list_.empty() ? nullptr : layer_list_[0]; |
| 276 } | 278 } |
| 277 | 279 |
| 278 void LayerTreeImpl::OnCanDrawStateChangedForTree() { | 280 void LayerTreeImpl::OnCanDrawStateChangedForTree() { |
| 279 layer_tree_host_impl_->OnCanDrawStateChangedForTree(); | 281 layer_tree_host_impl_->OnCanDrawStateChangedForTree(); |
| 280 } | 282 } |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1013 | 1015 |
| 1014 TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateDrawProperties::UpdateTiles", | 1016 TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateDrawProperties::UpdateTiles", |
| 1015 "layers_updated_count", layers_updated_count); | 1017 "layers_updated_count", layers_updated_count); |
| 1016 } | 1018 } |
| 1017 | 1019 |
| 1018 DCHECK(!needs_update_draw_properties_) | 1020 DCHECK(!needs_update_draw_properties_) |
| 1019 << "CalcDrawProperties should not set_needs_update_draw_properties()"; | 1021 << "CalcDrawProperties should not set_needs_update_draw_properties()"; |
| 1020 return true; | 1022 return true; |
| 1021 } | 1023 } |
| 1022 | 1024 |
| 1023 void LayerTreeImpl::BuildLayerListAndPropertyTreesForTesting() { | 1025 void LayerTreeImpl::BuildLayerListAndPropertyTreesForTesting() { |
|
jaydasika
2016/06/29 22:40:45
This can now just be :
BuildLayerListForTesting();
danakj
2016/06/29 22:42:18
Oh sure, ya :)
| |
| 1024 BuildLayerListForTesting(); | 1026 BuildLayerListForTesting(); |
| 1025 PropertyTreeBuilder::PreCalculateMetaInformationForTesting( | 1027 PropertyTreeBuilder::PreCalculateMetaInformationForTesting( |
| 1026 root_layer_for_testing_); | 1028 root_layer_for_testing_); |
| 1029 property_trees_.needs_rebuild = true; | |
| 1027 property_trees_.transform_tree.set_source_to_parent_updates_allowed(true); | 1030 property_trees_.transform_tree.set_source_to_parent_updates_allowed(true); |
| 1028 PropertyTreeBuilder::BuildPropertyTrees( | 1031 PropertyTreeBuilder::BuildPropertyTrees( |
| 1029 root_layer_for_testing_, PageScaleLayer(), InnerViewportScrollLayer(), | 1032 root_layer_for_testing_, PageScaleLayer(), InnerViewportScrollLayer(), |
| 1030 OuterViewportScrollLayer(), OverscrollElasticityLayer(), | 1033 OuterViewportScrollLayer(), OverscrollElasticityLayer(), |
| 1031 elastic_overscroll()->Current(IsActiveTree()), | 1034 elastic_overscroll()->Current(IsActiveTree()), |
| 1032 current_page_scale_factor(), device_scale_factor(), | 1035 current_page_scale_factor(), device_scale_factor(), |
| 1033 gfx::Rect(DrawViewportSize()), layer_tree_host_impl_->DrawTransform(), | 1036 gfx::Rect(DrawViewportSize()), layer_tree_host_impl_->DrawTransform(), |
| 1034 &property_trees_); | 1037 &property_trees_); |
| 1035 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); | 1038 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); |
| 1036 } | 1039 } |
| 1037 | 1040 |
| 1041 void LayerTreeImpl::BuildPropertyTreesForTesting() { | |
| 1042 PropertyTreeBuilder::PreCalculateMetaInformationForTesting(layer_list_[0]); | |
| 1043 property_trees_.needs_rebuild = true; | |
| 1044 property_trees_.transform_tree.set_source_to_parent_updates_allowed(true); | |
| 1045 PropertyTreeBuilder::BuildPropertyTrees( | |
| 1046 layer_list_[0], PageScaleLayer(), InnerViewportScrollLayer(), | |
| 1047 OuterViewportScrollLayer(), OverscrollElasticityLayer(), | |
| 1048 elastic_overscroll()->Current(IsActiveTree()), | |
| 1049 current_page_scale_factor(), device_scale_factor(), | |
| 1050 gfx::Rect(DrawViewportSize()), layer_tree_host_impl_->DrawTransform(), | |
| 1051 &property_trees_); | |
| 1052 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); | |
| 1053 } | |
| 1054 | |
| 1038 const LayerImplList& LayerTreeImpl::RenderSurfaceLayerList() const { | 1055 const LayerImplList& LayerTreeImpl::RenderSurfaceLayerList() const { |
| 1039 // If this assert triggers, then the list is dirty. | 1056 // If this assert triggers, then the list is dirty. |
| 1040 DCHECK(!needs_update_draw_properties_); | 1057 DCHECK(!needs_update_draw_properties_); |
| 1041 return render_surface_layer_list_; | 1058 return render_surface_layer_list_; |
| 1042 } | 1059 } |
| 1043 | 1060 |
| 1044 const Region& LayerTreeImpl::UnoccludedScreenSpaceRegion() const { | 1061 const Region& LayerTreeImpl::UnoccludedScreenSpaceRegion() const { |
| 1045 // If this assert triggers, then the render_surface_layer_list_ is dirty, so | 1062 // If this assert triggers, then the render_surface_layer_list_ is dirty, so |
| 1046 // the unoccluded_screen_space_region_ is not valid anymore. | 1063 // the unoccluded_screen_space_region_ is not valid anymore. |
| 1047 DCHECK(!needs_update_draw_properties_); | 1064 DCHECK(!needs_update_draw_properties_); |
| (...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2091 | 2108 |
| 2092 void LayerTreeImpl::ResetAllChangeTracking() { | 2109 void LayerTreeImpl::ResetAllChangeTracking() { |
| 2093 layers_that_should_push_properties_.clear(); | 2110 layers_that_should_push_properties_.clear(); |
| 2094 // Iterate over all layers, including masks and replicas. | 2111 // Iterate over all layers, including masks and replicas. |
| 2095 for (auto& layer : *layers_) | 2112 for (auto& layer : *layers_) |
| 2096 layer->ResetChangeTracking(); | 2113 layer->ResetChangeTracking(); |
| 2097 property_trees_.ResetAllChangeTracking(); | 2114 property_trees_.ResetAllChangeTracking(); |
| 2098 } | 2115 } |
| 2099 | 2116 |
| 2100 } // namespace cc | 2117 } // namespace cc |
| OLD | NEW |