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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.cpp

Issue 2638333007: Add compositor element id for scroll nodes in SPv2. (Closed)
Patch Set: Sync to head. Created 3 years, 11 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "platform/graphics/compositing/PropertyTreeManager.h" 5 #include "platform/graphics/compositing/PropertyTreeManager.h"
6 6
7 #include "cc/layers/layer.h" 7 #include "cc/layers/layer.h"
8 #include "cc/trees/clip_node.h" 8 #include "cc/trees/clip_node.h"
9 #include "cc/trees/effect_node.h" 9 #include "cc/trees/effect_node.h"
10 #include "cc/trees/property_tree.h" 10 #include "cc/trees/property_tree.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 127
128 m_effectStack.push_back( 128 m_effectStack.push_back(
129 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id}); 129 BlinkEffectAndCcIdPair{EffectPaintPropertyNode::root(), effectNode.id});
130 m_rootLayer->SetEffectTreeIndex(effectNode.id); 130 m_rootLayer->SetEffectTreeIndex(effectNode.id);
131 } 131 }
132 132
133 void PropertyTreeManager::setupRootScrollNode() { 133 void PropertyTreeManager::setupRootScrollNode() {
134 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree; 134 cc::ScrollTree& scrollTree = m_propertyTrees.scroll_tree;
135 scrollTree.clear(); 135 scrollTree.clear();
136 m_propertyTrees.layer_id_to_scroll_node_index.clear(); 136 m_propertyTrees.layer_id_to_scroll_node_index.clear();
137 m_propertyTrees.element_id_to_scroll_node_index.clear();
137 cc::ScrollNode& scrollNode = 138 cc::ScrollNode& scrollNode =
138 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId)); 139 *scrollTree.Node(scrollTree.Insert(cc::ScrollNode(), kRealRootNodeId));
139 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId); 140 DCHECK_EQ(scrollNode.id, kSecondaryRootNodeId);
140 scrollNode.owning_layer_id = m_rootLayer->id(); 141 scrollNode.owning_layer_id = m_rootLayer->id();
141 scrollNode.transform_id = kSecondaryRootNodeId; 142 scrollNode.transform_id = kSecondaryRootNodeId;
142 m_propertyTrees.layer_id_to_scroll_node_index[scrollNode.owning_layer_id] = 143 m_propertyTrees.layer_id_to_scroll_node_index[scrollNode.owning_layer_id] =
143 scrollNode.id; 144 scrollNode.id;
144 145
145 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id); 146 m_scrollNodeMap.set(ScrollPaintPropertyNode::root(), scrollNode.id);
146 m_rootLayer->SetScrollTreeIndex(scrollNode.id); 147 m_rootLayer->SetScrollTreeIndex(scrollNode.id);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 compositorNode.bounds.SetSize(scrollNode->bounds().width(), 261 compositorNode.bounds.SetSize(scrollNode->bounds().width(),
261 scrollNode->bounds().height()); 262 scrollNode->bounds().height());
262 compositorNode.user_scrollable_horizontal = 263 compositorNode.user_scrollable_horizontal =
263 scrollNode->userScrollableHorizontal(); 264 scrollNode->userScrollableHorizontal();
264 compositorNode.user_scrollable_vertical = 265 compositorNode.user_scrollable_vertical =
265 scrollNode->userScrollableVertical(); 266 scrollNode->userScrollableVertical();
266 compositorNode.transform_id = 267 compositorNode.transform_id =
267 ensureCompositorTransformNode(scrollNode->scrollOffsetTranslation()); 268 ensureCompositorTransformNode(scrollNode->scrollOffsetTranslation());
268 compositorNode.main_thread_scrolling_reasons = 269 compositorNode.main_thread_scrolling_reasons =
269 scrollNode->mainThreadScrollingReasons(); 270 scrollNode->mainThreadScrollingReasons();
271 CompositorElementId compositorElementId = scrollNode->compositorElementId();
272 if (compositorElementId) {
273 compositorNode.element_id = compositorElementId;
274 m_propertyTrees.element_id_to_scroll_node_index[compositorElementId] = id;
275 }
270 276
271 auto result = m_scrollNodeMap.set(scrollNode, id); 277 auto result = m_scrollNodeMap.set(scrollNode, id);
272 DCHECK(result.isNewEntry); 278 DCHECK(result.isNewEntry);
273 scrollTree().set_needs_update(true); 279 scrollTree().set_needs_update(true);
274 280
275 return id; 281 return id;
276 } 282 }
277 283
278 void PropertyTreeManager::updateScrollOffset(int layerId, int scrollId) { 284 void PropertyTreeManager::updateScrollOffset(int layerId, int scrollId) {
279 cc::ScrollNode& scrollNode = *scrollTree().Node(scrollId); 285 cc::ScrollNode& scrollNode = *scrollTree().Node(scrollId);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); 385 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id});
380 386
381 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); 387 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber);
382 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); 388 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId);
383 dummyLayer->SetClipTreeIndex(outputClipId); 389 dummyLayer->SetClipTreeIndex(outputClipId);
384 dummyLayer->SetEffectTreeIndex(effectNode.id); 390 dummyLayer->SetEffectTreeIndex(effectNode.id);
385 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); 391 dummyLayer->SetScrollTreeIndex(kRealRootNodeId);
386 } 392 }
387 393
388 } // namespace blink 394 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698