OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef CC_TREES_LAYER_TREE_IMPL_H_ | 5 #ifndef CC_TREES_LAYER_TREE_IMPL_H_ |
6 #define CC_TREES_LAYER_TREE_IMPL_H_ | 6 #define CC_TREES_LAYER_TREE_IMPL_H_ |
7 | 7 |
8 #include <map> | |
9 #include <set> | 8 #include <set> |
10 #include <string> | 9 #include <string> |
11 #include <vector> | 10 #include <vector> |
12 | 11 |
13 #include "base/containers/hash_tables.h" | 12 #include "base/containers/hash_tables.h" |
14 #include "base/values.h" | 13 #include "base/values.h" |
15 #include "cc/base/synced_property.h" | 14 #include "cc/base/synced_property.h" |
16 #include "cc/input/layer_selection_bound.h" | 15 #include "cc/input/layer_selection_bound.h" |
17 #include "cc/layers/layer_impl.h" | 16 #include "cc/layers/layer_impl.h" |
18 #include "cc/output/begin_frame_args.h" | 17 #include "cc/output/begin_frame_args.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 void SetPropertyTrees(const PropertyTrees& property_trees) { | 127 void SetPropertyTrees(const PropertyTrees& property_trees) { |
129 property_trees_ = property_trees; | 128 property_trees_ = property_trees; |
130 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); | 129 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); |
131 } | 130 } |
132 PropertyTrees* property_trees() { return &property_trees_; } | 131 PropertyTrees* property_trees() { return &property_trees_; } |
133 | 132 |
134 void UpdatePropertyTreesForBoundsDelta(); | 133 void UpdatePropertyTreesForBoundsDelta(); |
135 | 134 |
136 void PushPropertiesTo(LayerTreeImpl* tree_impl); | 135 void PushPropertiesTo(LayerTreeImpl* tree_impl); |
137 | 136 |
| 137 struct CC_EXPORT ElementLayers { |
| 138 // Transform and opacity mutations apply to this layer. |
| 139 LayerImpl* main = nullptr; |
| 140 // Scroll mutations apply to this layer. |
| 141 LayerImpl* scroll = nullptr; |
| 142 }; |
| 143 |
| 144 void AddToElementMap(LayerImpl* layer); |
| 145 void RemoveFromElementMap(LayerImpl* layer); |
| 146 ElementLayers GetMutableLayers(uint64_t element_id); |
138 int source_frame_number() const { return source_frame_number_; } | 147 int source_frame_number() const { return source_frame_number_; } |
139 void set_source_frame_number(int frame_number) { | 148 void set_source_frame_number(int frame_number) { |
140 source_frame_number_ = frame_number; | 149 source_frame_number_ = frame_number; |
141 } | 150 } |
142 | 151 |
143 HeadsUpDisplayLayerImpl* hud_layer() { return hud_layer_; } | 152 HeadsUpDisplayLayerImpl* hud_layer() { return hud_layer_; } |
144 void set_hud_layer(HeadsUpDisplayLayerImpl* layer_impl) { | 153 void set_hud_layer(HeadsUpDisplayLayerImpl* layer_impl) { |
145 hud_layer_ = layer_impl; | 154 hud_layer_ = layer_impl; |
146 } | 155 } |
147 | 156 |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 float max_page_scale_factor_; | 460 float max_page_scale_factor_; |
452 | 461 |
453 float device_scale_factor_; | 462 float device_scale_factor_; |
454 float painted_device_scale_factor_; | 463 float painted_device_scale_factor_; |
455 | 464 |
456 scoped_refptr<SyncedElasticOverscroll> elastic_overscroll_; | 465 scoped_refptr<SyncedElasticOverscroll> elastic_overscroll_; |
457 | 466 |
458 typedef base::hash_map<int, LayerImpl*> LayerIdMap; | 467 typedef base::hash_map<int, LayerImpl*> LayerIdMap; |
459 LayerIdMap layer_id_map_; | 468 LayerIdMap layer_id_map_; |
460 | 469 |
| 470 base::hash_map<uint64_t, ElementLayers> element_layers_map_; |
| 471 |
461 // Maps from clip layer ids to scroll layer ids. Note that this only includes | 472 // Maps from clip layer ids to scroll layer ids. Note that this only includes |
462 // the subset of clip layers that act as scrolling containers. (This is | 473 // the subset of clip layers that act as scrolling containers. (This is |
463 // derived from LayerImpl::scroll_clip_layer_ and exists to avoid O(n) walks.) | 474 // derived from LayerImpl::scroll_clip_layer_ and exists to avoid O(n) walks.) |
464 base::hash_map<int, int> clip_scroll_map_; | 475 base::hash_map<int, int> clip_scroll_map_; |
465 | 476 |
466 // Maps scroll layer ids to scrollbar layer ids. For each scroll layer, there | 477 // Maps scroll layer ids to scrollbar layer ids. For each scroll layer, there |
467 // may be 1 or 2 scrollbar layers (for vertical and horizontal). (This is | 478 // may be 1 or 2 scrollbar layers (for vertical and horizontal). (This is |
468 // derived from ScrollbarLayerImplBase::scroll_layer_id_ and exists to avoid | 479 // derived from ScrollbarLayerImplBase::scroll_layer_id_ and exists to avoid |
469 // O(n) walks.) | 480 // O(n) walks.) |
470 std::multimap<int, int> scrollbar_map_; | 481 std::multimap<int, int> scrollbar_map_; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 | 520 |
510 scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation_; | 521 scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation_; |
511 | 522 |
512 private: | 523 private: |
513 DISALLOW_COPY_AND_ASSIGN(LayerTreeImpl); | 524 DISALLOW_COPY_AND_ASSIGN(LayerTreeImpl); |
514 }; | 525 }; |
515 | 526 |
516 } // namespace cc | 527 } // namespace cc |
517 | 528 |
518 #endif // CC_TREES_LAYER_TREE_IMPL_H_ | 529 #endif // CC_TREES_LAYER_TREE_IMPL_H_ |
OLD | NEW |