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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 min_page_scale_factor_(0), | 83 min_page_scale_factor_(0), |
84 max_page_scale_factor_(0), | 84 max_page_scale_factor_(0), |
85 device_scale_factor_(1.f), | 85 device_scale_factor_(1.f), |
86 painted_device_scale_factor_(1.f), | 86 painted_device_scale_factor_(1.f), |
87 content_source_id_(0), | 87 content_source_id_(0), |
88 elastic_overscroll_(elastic_overscroll), | 88 elastic_overscroll_(elastic_overscroll), |
89 layers_(new OwnedLayerImplList), | 89 layers_(new OwnedLayerImplList), |
90 viewport_size_invalid_(false), | 90 viewport_size_invalid_(false), |
91 needs_update_draw_properties_(true), | 91 needs_update_draw_properties_(true), |
92 needs_full_tree_sync_(true), | 92 needs_full_tree_sync_(true), |
| 93 needs_surface_ids_sync_(false), |
93 next_activation_forces_redraw_(false), | 94 next_activation_forces_redraw_(false), |
94 has_ever_been_drawn_(false), | 95 has_ever_been_drawn_(false), |
95 handle_visibility_changed_(false), | 96 handle_visibility_changed_(false), |
96 have_scroll_event_handlers_(false), | 97 have_scroll_event_handlers_(false), |
97 event_listener_properties_(), | 98 event_listener_properties_(), |
98 browser_controls_shrink_blink_size_(false), | 99 browser_controls_shrink_blink_size_(false), |
99 top_controls_height_(0), | 100 top_controls_height_(0), |
100 bottom_controls_height_(0), | 101 bottom_controls_height_(0), |
101 top_controls_shown_ratio_(top_controls_shown_ratio) { | 102 top_controls_shown_ratio_(top_controls_shown_ratio) { |
102 property_trees()->is_main_thread = false; | 103 property_trees()->is_main_thread = false; |
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 gfx::SizeF content_size = root_scroll_layer->BoundsForScrolling(); | 1212 gfx::SizeF content_size = root_scroll_layer->BoundsForScrolling(); |
1212 content_size.SetToMax(root_container_layer->BoundsForScrolling()); | 1213 content_size.SetToMax(root_container_layer->BoundsForScrolling()); |
1213 return content_size; | 1214 return content_size; |
1214 } | 1215 } |
1215 | 1216 |
1216 LayerImpl* LayerTreeImpl::LayerById(int id) const { | 1217 LayerImpl* LayerTreeImpl::LayerById(int id) const { |
1217 LayerImplMap::const_iterator iter = layer_id_map_.find(id); | 1218 LayerImplMap::const_iterator iter = layer_id_map_.find(id); |
1218 return iter != layer_id_map_.end() ? iter->second : nullptr; | 1219 return iter != layer_id_map_.end() ? iter->second : nullptr; |
1219 } | 1220 } |
1220 | 1221 |
| 1222 void LayerTreeImpl::SetSurfaceLayerIds( |
| 1223 const std::vector<SurfaceId>& surface_layer_ids) { |
| 1224 DCHECK(surface_layer_ids_.empty()); |
| 1225 surface_layer_ids_ = surface_layer_ids; |
| 1226 needs_surface_ids_sync_ = true; |
| 1227 } |
| 1228 |
| 1229 const std::vector<SurfaceId>& LayerTreeImpl::SurfaceLayerIds() const { |
| 1230 return surface_layer_ids_; |
| 1231 } |
| 1232 |
| 1233 void LayerTreeImpl::ClearSurfaceLayerIds() { |
| 1234 surface_layer_ids_.clear(); |
| 1235 needs_surface_ids_sync_ = true; |
| 1236 } |
| 1237 |
1221 void LayerTreeImpl::AddLayerShouldPushProperties(LayerImpl* layer) { | 1238 void LayerTreeImpl::AddLayerShouldPushProperties(LayerImpl* layer) { |
1222 layers_that_should_push_properties_.insert(layer); | 1239 layers_that_should_push_properties_.insert(layer); |
1223 } | 1240 } |
1224 | 1241 |
1225 void LayerTreeImpl::RemoveLayerShouldPushProperties(LayerImpl* layer) { | 1242 void LayerTreeImpl::RemoveLayerShouldPushProperties(LayerImpl* layer) { |
1226 layers_that_should_push_properties_.erase(layer); | 1243 layers_that_should_push_properties_.erase(layer); |
1227 } | 1244 } |
1228 | 1245 |
1229 std::unordered_set<LayerImpl*>& | 1246 std::unordered_set<LayerImpl*>& |
1230 LayerTreeImpl::LayersThatShouldPushProperties() { | 1247 LayerTreeImpl::LayersThatShouldPushProperties() { |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1730 layer->set_needs_show_scrollbars(true); | 1747 layer->set_needs_show_scrollbars(true); |
1731 } | 1748 } |
1732 | 1749 |
1733 void LayerTreeImpl::UnregisterScrollLayer(LayerImpl* layer) { | 1750 void LayerTreeImpl::UnregisterScrollLayer(LayerImpl* layer) { |
1734 if (layer->scroll_clip_layer_id() == Layer::INVALID_ID) | 1751 if (layer->scroll_clip_layer_id() == Layer::INVALID_ID) |
1735 return; | 1752 return; |
1736 | 1753 |
1737 clip_scroll_map_.erase(layer->scroll_clip_layer_id()); | 1754 clip_scroll_map_.erase(layer->scroll_clip_layer_id()); |
1738 } | 1755 } |
1739 | 1756 |
1740 void LayerTreeImpl::AddSurfaceLayer(LayerImpl* layer) { | |
1741 DCHECK(std::find(surface_layers_.begin(), surface_layers_.end(), layer) == | |
1742 surface_layers_.end()); | |
1743 surface_layers_.push_back(layer); | |
1744 } | |
1745 | |
1746 void LayerTreeImpl::RemoveSurfaceLayer(LayerImpl* layer) { | |
1747 LayerImplList::iterator it = | |
1748 std::find(surface_layers_.begin(), surface_layers_.end(), layer); | |
1749 DCHECK(it != surface_layers_.end()); | |
1750 surface_layers_.erase(it); | |
1751 } | |
1752 | |
1753 static bool PointHitsRect( | 1757 static bool PointHitsRect( |
1754 const gfx::PointF& screen_space_point, | 1758 const gfx::PointF& screen_space_point, |
1755 const gfx::Transform& local_space_to_screen_space_transform, | 1759 const gfx::Transform& local_space_to_screen_space_transform, |
1756 const gfx::Rect& local_space_rect, | 1760 const gfx::Rect& local_space_rect, |
1757 float* distance_to_camera) { | 1761 float* distance_to_camera) { |
1758 // If the transform is not invertible, then assume that this point doesn't hit | 1762 // If the transform is not invertible, then assume that this point doesn't hit |
1759 // this rect. | 1763 // this rect. |
1760 gfx::Transform inverse_local_space_to_screen_space( | 1764 gfx::Transform inverse_local_space_to_screen_space( |
1761 gfx::Transform::kSkipInitialization); | 1765 gfx::Transform::kSkipInitialization); |
1762 if (!local_space_to_screen_space_transform.GetInverse( | 1766 if (!local_space_to_screen_space_transform.GetInverse( |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2117 | 2121 |
2118 void LayerTreeImpl::ResetAllChangeTracking() { | 2122 void LayerTreeImpl::ResetAllChangeTracking() { |
2119 layers_that_should_push_properties_.clear(); | 2123 layers_that_should_push_properties_.clear(); |
2120 // Iterate over all layers, including masks. | 2124 // Iterate over all layers, including masks. |
2121 for (auto& layer : *layers_) | 2125 for (auto& layer : *layers_) |
2122 layer->ResetChangeTracking(); | 2126 layer->ResetChangeTracking(); |
2123 property_trees_.ResetAllChangeTracking(); | 2127 property_trees_.ResetAllChangeTracking(); |
2124 } | 2128 } |
2125 | 2129 |
2126 } // namespace cc | 2130 } // namespace cc |
OLD | NEW |