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

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

Issue 2860293002: Change cc::ElementId to be a uint64_t (Closed)
Patch Set: none Created 3 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 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 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 property_trees_.is_active = IsActiveTree(); 373 property_trees_.is_active = IsActiveTree();
374 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false); 374 property_trees_.transform_tree.set_source_to_parent_updates_allowed(false);
375 } 375 }
376 376
377 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { 377 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
378 // The request queue should have been processed and does not require a push. 378 // The request queue should have been processed and does not require a push.
379 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); 379 DCHECK_EQ(ui_resource_request_queue_.size(), 0u);
380 380
381 // To maintain the current scrolling node we need to use element ids which 381 // To maintain the current scrolling node we need to use element ids which
382 // are stable across the property tree update in SetPropertyTrees. 382 // are stable across the property tree update in SetPropertyTrees.
383 ElementId scrolling_element_id; 383 ElementId scrolling_element_id = 0;
wkorman 2017/05/05 20:06:10 kInvalidElementId here?
chrishtr 2017/05/05 20:46:09 Done.
384 if (ScrollNode* scrolling_node = target_tree->CurrentlyScrollingNode()) 384 if (ScrollNode* scrolling_node = target_tree->CurrentlyScrollingNode())
385 scrolling_element_id = scrolling_node->element_id; 385 scrolling_element_id = scrolling_node->element_id;
386 386
387 target_tree->SetPropertyTrees(&property_trees_); 387 target_tree->SetPropertyTrees(&property_trees_);
388 388
389 ScrollNode* scrolling_node = nullptr; 389 ScrollNode* scrolling_node = nullptr;
390 if (scrolling_element_id) { 390 if (scrolling_element_id) {
391 auto& scroll_tree = target_tree->property_trees()->scroll_tree; 391 auto& scroll_tree = target_tree->property_trees()->scroll_tree;
392 scrolling_node = scroll_tree.FindNodeFromElementId(scrolling_element_id); 392 scrolling_node = scroll_tree.FindNodeFromElementId(scrolling_element_id);
393 } 393 }
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 LayerImpl* LayerTreeImpl::LayerByElementId(ElementId element_id) const { 529 LayerImpl* LayerTreeImpl::LayerByElementId(ElementId element_id) const {
530 return LayerById(LayerIdByElementId(element_id)); 530 return LayerById(LayerIdByElementId(element_id));
531 } 531 }
532 532
533 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { 533 void LayerTreeImpl::AddToElementMap(LayerImpl* layer) {
534 ElementId element_id = layer->element_id(); 534 ElementId element_id = layer->element_id();
535 if (!element_id) 535 if (!element_id)
536 return; 536 return;
537 537
538 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 538 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
539 "LayerTreeImpl::AddToElementMap", "element", 539 "LayerTreeImpl::AddToElementMap", "element", element_id,
540 element_id.AsValue().release(), "layer_id", layer->id()); 540 "layer_id", layer->id());
541 541
542 #if DCHECK_IS_ON() 542 #if DCHECK_IS_ON()
543 LayerImpl* existing_layer = LayerByElementId(element_id); 543 LayerImpl* existing_layer = LayerByElementId(element_id);
544 bool element_id_collision_detected = 544 bool element_id_collision_detected =
545 existing_layer && existing_layer != layer; 545 existing_layer && existing_layer != layer;
546 546
547 // TODO(pdr): Remove this suppression and always check for id collisions. 547 // TODO(pdr): Remove this suppression and always check for id collisions.
548 // This is a temporary suppression for SPV2 which generates unnecessary 548 // This is a temporary suppression for SPV2 which generates unnecessary
549 // layers that collide. Remove once crbug.com/693693 is fixed. 549 // layers that collide. Remove once crbug.com/693693 is fixed.
550 if (!settings().use_layer_lists) 550 if (!settings().use_layer_lists)
551 DCHECK(!element_id_collision_detected); 551 DCHECK(!element_id_collision_detected);
552 #endif 552 #endif
553 553
554 element_layers_map_[element_id] = layer->id(); 554 element_layers_map_[element_id] = layer->id();
555 555
556 layer_tree_host_impl_->mutator_host()->RegisterElement( 556 layer_tree_host_impl_->mutator_host()->RegisterElement(
557 element_id, 557 element_id,
558 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 558 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
559 } 559 }
560 560
561 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) { 561 void LayerTreeImpl::RemoveFromElementMap(LayerImpl* layer) {
562 if (!layer->element_id()) 562 if (!layer->element_id())
563 return; 563 return;
564 564
565 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 565 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
566 "LayerTreeImpl::RemoveFromElementMap", "element", 566 "LayerTreeImpl::RemoveFromElementMap", "element",
567 layer->element_id().AsValue().release(), "layer_id", 567 layer->element_id(), "layer_id", layer->id());
568 layer->id());
569 568
570 layer_tree_host_impl_->mutator_host()->UnregisterElement( 569 layer_tree_host_impl_->mutator_host()->UnregisterElement(
571 layer->element_id(), 570 layer->element_id(),
572 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 571 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
573 572
574 element_layers_map_.erase(layer->element_id()); 573 element_layers_map_.erase(layer->element_id());
575 } 574 }
576 575
577 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) { 576 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) {
578 if (LayerImpl* layer = LayerById(id)) 577 if (LayerImpl* layer = LayerById(id))
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 977
979 void LayerTreeImpl::ClearViewportLayers() { 978 void LayerTreeImpl::ClearViewportLayers() {
980 overscroll_elasticity_layer_id_ = Layer::INVALID_ID; 979 overscroll_elasticity_layer_id_ = Layer::INVALID_ID;
981 page_scale_layer_id_ = Layer::INVALID_ID; 980 page_scale_layer_id_ = Layer::INVALID_ID;
982 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID; 981 inner_viewport_scroll_layer_id_ = Layer::INVALID_ID;
983 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID; 982 outer_viewport_scroll_layer_id_ = Layer::INVALID_ID;
984 } 983 }
985 984
986 // For unit tests, we use the layer's id as its element id. 985 // For unit tests, we use the layer's id as its element id.
987 static void SetElementIdForTesting(LayerImpl* layer) { 986 static void SetElementIdForTesting(LayerImpl* layer) {
988 layer->SetElementId(LayerIdToElementIdForTesting(layer->id())); 987 layer->SetElementId(layer->id());
989 } 988 }
990 989
991 void LayerTreeImpl::SetElementIdsForTesting() { 990 void LayerTreeImpl::SetElementIdsForTesting() {
992 LayerListIterator<LayerImpl> it(root_layer_for_testing_); 991 LayerListIterator<LayerImpl> it(root_layer_for_testing_);
993 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) { 992 for (; it != LayerListIterator<LayerImpl>(nullptr); ++it) {
994 if (!it->element_id()) 993 if (!it->element_id())
995 SetElementIdForTesting(*it); 994 SetElementIdForTesting(*it);
996 } 995 }
997 } 996 }
998 997
(...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after
2092 2091
2093 void LayerTreeImpl::ResetAllChangeTracking() { 2092 void LayerTreeImpl::ResetAllChangeTracking() {
2094 layers_that_should_push_properties_.clear(); 2093 layers_that_should_push_properties_.clear();
2095 // Iterate over all layers, including masks. 2094 // Iterate over all layers, including masks.
2096 for (auto& layer : *layers_) 2095 for (auto& layer : *layers_)
2097 layer->ResetChangeTracking(); 2096 layer->ResetChangeTracking();
2098 property_trees_.ResetAllChangeTracking(); 2097 property_trees_.ResetAllChangeTracking();
2099 } 2098 }
2100 2099
2101 } // namespace cc 2100 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698