Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Side by Side Diff: cc/trees/layer_tree_impl.h

Issue 1944623002: CC Animation: Use ElementId to attach CC animation players. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@erasedomids
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 void MoveChangeTrackingToLayers(); 157 void MoveChangeTrackingToLayers();
158 158
159 LayerListIterator<LayerImpl> begin(); 159 LayerListIterator<LayerImpl> begin();
160 LayerListIterator<LayerImpl> end(); 160 LayerListIterator<LayerImpl> end();
161 LayerListReverseIterator<LayerImpl> rbegin(); 161 LayerListReverseIterator<LayerImpl> rbegin();
162 LayerListReverseIterator<LayerImpl> rend(); 162 LayerListReverseIterator<LayerImpl> rend();
163 163
164 // TODO(thakis): Consider marking this CC_EXPORT once we understand 164 // TODO(thakis): Consider marking this CC_EXPORT once we understand
165 // http://crbug.com/575700 better. 165 // http://crbug.com/575700 better.
166 struct ElementLayers { 166 struct ElementLayers {
167 // Transform and opacity mutations apply to this layer. 167 // Transform, filter and opacity mutations apply to this layer.
168 LayerImpl* main = nullptr; 168 LayerImpl* main = nullptr;
169 // Scroll mutations apply to this layer. 169 // Scroll mutations apply to this layer.
170 LayerImpl* scroll = nullptr; 170 LayerImpl* scroll = nullptr;
171 }; 171 };
172 172
173 void RegisterLayerForElementId(LayerImpl* layer);
174 void UnregisterLayerForElementId(LayerImpl* layer);
173 void AddToElementMap(LayerImpl* layer); 175 void AddToElementMap(LayerImpl* layer);
174 void RemoveFromElementMap(LayerImpl* layer); 176 void RemoveFromElementMap(LayerImpl* layer);
175 ElementLayers GetMutableLayers(uint64_t element_id); 177 ElementLayers GetMutableLayers(ElementId element_id);
176 int source_frame_number() const { return source_frame_number_; } 178 int source_frame_number() const { return source_frame_number_; }
177 void set_source_frame_number(int frame_number) { 179 void set_source_frame_number(int frame_number) {
178 source_frame_number_ = frame_number; 180 source_frame_number_ = frame_number;
179 } 181 }
180 182
181 bool is_first_frame_after_commit() const { 183 bool is_first_frame_after_commit() const {
182 return source_frame_number_ != is_first_frame_after_commit_tracker_; 184 return source_frame_number_ != is_first_frame_after_commit_tracker_;
183 } 185 }
184 186
185 void set_is_first_frame_after_commit(bool is_first_frame_after_commit) { 187 void set_is_first_frame_after_commit(bool is_first_frame_after_commit) {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 const Region& UnoccludedScreenSpaceRegion() const; 301 const Region& UnoccludedScreenSpaceRegion() const;
300 302
301 // These return the size of the root scrollable area and the size of 303 // These return the size of the root scrollable area and the size of
302 // the user-visible scrolling viewport, in CSS layout coordinates. 304 // the user-visible scrolling viewport, in CSS layout coordinates.
303 gfx::SizeF ScrollableSize() const; 305 gfx::SizeF ScrollableSize() const;
304 gfx::SizeF ScrollableViewportSize() const; 306 gfx::SizeF ScrollableViewportSize() const;
305 307
306 gfx::Rect RootScrollLayerDeviceViewportBounds() const; 308 gfx::Rect RootScrollLayerDeviceViewportBounds() const;
307 309
308 LayerImpl* LayerById(int id) const; 310 LayerImpl* LayerById(int id) const;
311 LayerImpl* LayerForElementId(ElementId element_id) const;
312 LayerImpl* ScrollLayerForElementId(ElementId element_id) const;
313 bool HasAnyLayerForElementId(ElementId element_id) const;
309 314
310 void AddLayerShouldPushProperties(LayerImpl* layer); 315 void AddLayerShouldPushProperties(LayerImpl* layer);
311 void RemoveLayerShouldPushProperties(LayerImpl* layer); 316 void RemoveLayerShouldPushProperties(LayerImpl* layer);
312 std::unordered_set<LayerImpl*>& LayersThatShouldPushProperties(); 317 std::unordered_set<LayerImpl*>& LayersThatShouldPushProperties();
313 bool LayerNeedsPushPropertiesForTesting(LayerImpl* layer); 318 bool LayerNeedsPushPropertiesForTesting(LayerImpl* layer);
314 319
315 // These should be called by LayerImpl's ctor/dtor. 320 // These should be called by LayerImpl's ctor/dtor.
316 void RegisterLayer(LayerImpl* layer); 321 void RegisterLayer(LayerImpl* layer);
317 void UnregisterLayer(LayerImpl* layer); 322 void UnregisterLayer(LayerImpl* layer);
318 323
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 float min_page_scale_factor_; 529 float min_page_scale_factor_;
525 float max_page_scale_factor_; 530 float max_page_scale_factor_;
526 531
527 float device_scale_factor_; 532 float device_scale_factor_;
528 float painted_device_scale_factor_; 533 float painted_device_scale_factor_;
529 534
530 scoped_refptr<SyncedElasticOverscroll> elastic_overscroll_; 535 scoped_refptr<SyncedElasticOverscroll> elastic_overscroll_;
531 536
532 std::unique_ptr<OwnedLayerImplList> layers_; 537 std::unique_ptr<OwnedLayerImplList> layers_;
533 LayerImplMap layer_id_map_; 538 LayerImplMap layer_id_map_;
539
540 using ElementIdToLayerMap = std::unordered_map<ElementId, ElementLayers>;
541 ElementIdToLayerMap element_id_to_layer_map_;
542 // TODO(loyso): Unify it with element_id_to_layer_map_.
543 std::unordered_map<ElementId, ElementLayers> element_layers_map_;
544
534 // Set of layers that need to push properties. 545 // Set of layers that need to push properties.
535 std::unordered_set<LayerImpl*> layers_that_should_push_properties_; 546 std::unordered_set<LayerImpl*> layers_that_should_push_properties_;
536 547
537 std::unordered_map<uint64_t, ElementLayers> element_layers_map_;
538
539 // Maps from clip layer ids to scroll layer ids. Note that this only includes 548 // Maps from clip layer ids to scroll layer ids. Note that this only includes
540 // the subset of clip layers that act as scrolling containers. (This is 549 // the subset of clip layers that act as scrolling containers. (This is
541 // derived from LayerImpl::scroll_clip_layer_ and exists to avoid O(n) walks.) 550 // derived from LayerImpl::scroll_clip_layer_ and exists to avoid O(n) walks.)
542 std::unordered_map<int, int> clip_scroll_map_; 551 std::unordered_map<int, int> clip_scroll_map_;
543 552
544 // Maps scroll layer ids to scrollbar layer ids. For each scroll layer, there 553 // Maps scroll layer ids to scrollbar layer ids. For each scroll layer, there
545 // may be 1 or 2 scrollbar layers (for vertical and horizontal). (This is 554 // may be 1 or 2 scrollbar layers (for vertical and horizontal). (This is
546 // derived from ScrollbarLayerImplBase::scroll_layer_id_ and exists to avoid 555 // derived from ScrollbarLayerImplBase::scroll_layer_id_ and exists to avoid
547 // O(n) walks.) 556 // O(n) walks.)
548 std::multimap<int, int> scrollbar_map_; 557 std::multimap<int, int> scrollbar_map_;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 597
589 std::unique_ptr<PendingPageScaleAnimation> pending_page_scale_animation_; 598 std::unique_ptr<PendingPageScaleAnimation> pending_page_scale_animation_;
590 599
591 private: 600 private:
592 DISALLOW_COPY_AND_ASSIGN(LayerTreeImpl); 601 DISALLOW_COPY_AND_ASSIGN(LayerTreeImpl);
593 }; 602 };
594 603
595 } // namespace cc 604 } // namespace cc
596 605
597 #endif // CC_TREES_LAYER_TREE_IMPL_H_ 606 #endif // CC_TREES_LAYER_TREE_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698