| OLD | NEW |
| 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/layer_tree_host.h" | 10 #include "cc/trees/layer_tree_host.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 static constexpr int kInvalidNodeId = -1; | 27 static constexpr int kInvalidNodeId = -1; |
| 28 // cc's property trees use 0 for the root node (always non-null). | 28 // cc's property trees use 0 for the root node (always non-null). |
| 29 static constexpr int kRealRootNodeId = 0; | 29 static constexpr int kRealRootNodeId = 0; |
| 30 // cc allocates special nodes for root effects such as the device scale. | 30 // cc allocates special nodes for root effects such as the device scale. |
| 31 static constexpr int kSecondaryRootNodeId = 1; | 31 static constexpr int kSecondaryRootNodeId = 1; |
| 32 | 32 |
| 33 } // namespace | 33 } // namespace |
| 34 | 34 |
| 35 PropertyTreeManager::PropertyTreeManager(cc::PropertyTrees& propertyTrees, | 35 PropertyTreeManager::PropertyTreeManager(cc::PropertyTrees& propertyTrees, |
| 36 cc::Layer* rootLayer) | 36 cc::Layer* rootLayer, |
| 37 : m_propertyTrees(propertyTrees), m_rootLayer(rootLayer) { | 37 int sequenceNumber) |
| 38 : m_propertyTrees(propertyTrees), |
| 39 m_rootLayer(rootLayer), |
| 40 m_sequenceNumber(sequenceNumber) { |
| 38 setupRootTransformNode(); | 41 setupRootTransformNode(); |
| 39 setupRootClipNode(); | 42 setupRootClipNode(); |
| 40 setupRootEffectNode(); | 43 setupRootEffectNode(); |
| 41 setupRootScrollNode(); | 44 setupRootScrollNode(); |
| 42 } | 45 } |
| 43 | 46 |
| 44 cc::TransformTree& PropertyTreeManager::transformTree() { | 47 cc::TransformTree& PropertyTreeManager::transformTree() { |
| 45 return m_propertyTrees.transform_tree; | 48 return m_propertyTrees.transform_tree; |
| 46 } | 49 } |
| 47 | 50 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 compositorNode.needs_local_transform_update = true; | 187 compositorNode.needs_local_transform_update = true; |
| 185 compositorNode.flattens_inherited_transform = | 188 compositorNode.flattens_inherited_transform = |
| 186 transformNode->flattensInheritedTransform(); | 189 transformNode->flattensInheritedTransform(); |
| 187 compositorNode.sorting_context_id = transformNode->renderingContextId(); | 190 compositorNode.sorting_context_id = transformNode->renderingContextId(); |
| 188 | 191 |
| 189 m_rootLayer->AddChild(dummyLayer); | 192 m_rootLayer->AddChild(dummyLayer); |
| 190 dummyLayer->SetTransformTreeIndex(id); | 193 dummyLayer->SetTransformTreeIndex(id); |
| 191 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId); | 194 dummyLayer->SetClipTreeIndex(kSecondaryRootNodeId); |
| 192 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); | 195 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); |
| 193 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 196 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 194 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 197 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
| 195 CompositorElementId compositorElementId = | 198 CompositorElementId compositorElementId = |
| 196 transformNode->compositorElementId(); | 199 transformNode->compositorElementId(); |
| 197 if (compositorElementId) { | 200 if (compositorElementId) { |
| 198 m_propertyTrees.element_id_to_transform_node_index[compositorElementId] = | 201 m_propertyTrees.element_id_to_transform_node_index[compositorElementId] = |
| 199 id; | 202 id; |
| 200 } | 203 } |
| 201 | 204 |
| 202 auto result = m_transformNodeMap.set(transformNode, id); | 205 auto result = m_transformNodeMap.set(transformNode, id); |
| 203 DCHECK(result.isNewEntry); | 206 DCHECK(result.isNewEntry); |
| 204 transformTree().set_needs_update(true); | 207 transformTree().set_needs_update(true); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 compositorNode.target_effect_id = kSecondaryRootNodeId; | 240 compositorNode.target_effect_id = kSecondaryRootNodeId; |
| 238 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; | 241 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; |
| 239 compositorNode.layers_are_clipped = true; | 242 compositorNode.layers_are_clipped = true; |
| 240 compositorNode.layers_are_clipped_when_surfaces_disabled = true; | 243 compositorNode.layers_are_clipped_when_surfaces_disabled = true; |
| 241 | 244 |
| 242 m_rootLayer->AddChild(dummyLayer); | 245 m_rootLayer->AddChild(dummyLayer); |
| 243 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); | 246 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); |
| 244 dummyLayer->SetClipTreeIndex(id); | 247 dummyLayer->SetClipTreeIndex(id); |
| 245 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); | 248 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); |
| 246 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 249 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 247 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 250 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
| 248 | 251 |
| 249 auto result = m_clipNodeMap.set(clipNode, id); | 252 auto result = m_clipNodeMap.set(clipNode, id); |
| 250 DCHECK(result.isNewEntry); | 253 DCHECK(result.isNewEntry); |
| 251 clipTree().set_needs_update(true); | 254 clipTree().set_needs_update(true); |
| 252 return id; | 255 return id; |
| 253 } | 256 } |
| 254 | 257 |
| 255 int PropertyTreeManager::ensureCompositorScrollNode( | 258 int PropertyTreeManager::ensureCompositorScrollNode( |
| 256 const ScrollPaintPropertyNode* scrollNode) { | 259 const ScrollPaintPropertyNode* scrollNode) { |
| 257 DCHECK(scrollNode); | 260 DCHECK(scrollNode); |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 effectNode.blend_mode = nextEffect->blendMode(); | 448 effectNode.blend_mode = nextEffect->blendMode(); |
| 446 m_propertyTrees.layer_id_to_effect_node_index[effectNode.owning_layer_id] = | 449 m_propertyTrees.layer_id_to_effect_node_index[effectNode.owning_layer_id] = |
| 447 effectNode.id; | 450 effectNode.id; |
| 448 CompositorElementId compositorElementId = nextEffect->compositorElementId(); | 451 CompositorElementId compositorElementId = nextEffect->compositorElementId(); |
| 449 if (compositorElementId) { | 452 if (compositorElementId) { |
| 450 m_propertyTrees.element_id_to_effect_node_index[compositorElementId] = | 453 m_propertyTrees.element_id_to_effect_node_index[compositorElementId] = |
| 451 effectNode.id; | 454 effectNode.id; |
| 452 } | 455 } |
| 453 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); | 456 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
| 454 | 457 |
| 455 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 458 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
| 456 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 459 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
| 457 dummyLayer->SetClipTreeIndex(outputClipId); | 460 dummyLayer->SetClipTreeIndex(outputClipId); |
| 458 dummyLayer->SetEffectTreeIndex(effectNode.id); | 461 dummyLayer->SetEffectTreeIndex(effectNode.id); |
| 459 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 462 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 460 } | 463 } |
| 461 | 464 |
| 462 } // namespace blink | 465 } // namespace blink |
| OLD | NEW |