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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 } | 96 } |
97 | 97 |
98 void PropertyTreeManager::setupRootClipNode() { | 98 void PropertyTreeManager::setupRootClipNode() { |
99 // cc is hardcoded to use clip node index 1 for viewport clip. | 99 // cc is hardcoded to use clip node index 1 for viewport clip. |
100 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; | 100 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; |
101 clipTree.clear(); | 101 clipTree.clear(); |
102 cc::ClipNode& clipNode = | 102 cc::ClipNode& clipNode = |
103 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); | 103 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); |
104 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); | 104 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); |
105 | 105 |
106 clipNode.resets_clip = true; | |
107 clipNode.owning_layer_id = m_rootLayer->id(); | 106 clipNode.owning_layer_id = m_rootLayer->id(); |
108 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; | 107 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; |
109 clipNode.clip = gfx::RectF( | 108 clipNode.clip = gfx::RectF( |
110 gfx::SizeF(m_rootLayer->layer_tree_host()->device_viewport_size())); | 109 gfx::SizeF(m_rootLayer->layer_tree_host()->device_viewport_size())); |
111 clipNode.transform_id = kRealRootNodeId; | 110 clipNode.transform_id = kRealRootNodeId; |
112 clipNode.target_transform_id = kRealRootNodeId; | |
113 clipNode.target_effect_id = kSecondaryRootNodeId; | |
114 clipTree.SetOwningLayerIdForNode(&clipNode, clipNode.owning_layer_id); | 111 clipTree.SetOwningLayerIdForNode(&clipNode, clipNode.owning_layer_id); |
115 | 112 |
116 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); | 113 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); |
117 m_rootLayer->SetClipTreeIndex(clipNode.id); | 114 m_rootLayer->SetClipTreeIndex(clipNode.id); |
118 } | 115 } |
119 | 116 |
120 void PropertyTreeManager::setupRootEffectNode() { | 117 void PropertyTreeManager::setupRootEffectNode() { |
121 // cc is hardcoded to use effect node index 1 for root render surface. | 118 // cc is hardcoded to use effect node index 1 for root render surface. |
122 cc::EffectTree& effectTree = m_propertyTrees.effect_tree; | 119 cc::EffectTree& effectTree = m_propertyTrees.effect_tree; |
123 effectTree.clear(); | 120 effectTree.clear(); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 | 220 |
224 cc::ClipNode& compositorNode = *clipTree().Node(id); | 221 cc::ClipNode& compositorNode = *clipTree().Node(id); |
225 compositorNode.owning_layer_id = dummyLayer->id(); | 222 compositorNode.owning_layer_id = dummyLayer->id(); |
226 clipTree().SetOwningLayerIdForNode(&compositorNode, | 223 clipTree().SetOwningLayerIdForNode(&compositorNode, |
227 compositorNode.owning_layer_id); | 224 compositorNode.owning_layer_id); |
228 | 225 |
229 // TODO(jbroman): Don't discard rounded corners. | 226 // TODO(jbroman): Don't discard rounded corners. |
230 compositorNode.clip = clipNode->clipRect().rect(); | 227 compositorNode.clip = clipNode->clipRect().rect(); |
231 compositorNode.transform_id = | 228 compositorNode.transform_id = |
232 ensureCompositorTransformNode(clipNode->localTransformSpace()); | 229 ensureCompositorTransformNode(clipNode->localTransformSpace()); |
233 compositorNode.target_transform_id = kRealRootNodeId; | |
234 compositorNode.target_effect_id = kSecondaryRootNodeId; | |
235 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; | 230 compositorNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; |
236 compositorNode.layers_are_clipped = true; | |
237 compositorNode.layers_are_clipped_when_surfaces_disabled = true; | |
238 | 231 |
239 m_rootLayer->AddChild(dummyLayer); | 232 m_rootLayer->AddChild(dummyLayer); |
240 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); | 233 dummyLayer->SetTransformTreeIndex(compositorNode.transform_id); |
241 dummyLayer->SetClipTreeIndex(id); | 234 dummyLayer->SetClipTreeIndex(id); |
242 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); | 235 dummyLayer->SetEffectTreeIndex(kSecondaryRootNodeId); |
243 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 236 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
244 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); | 237 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
245 | 238 |
246 auto result = m_clipNodeMap.set(clipNode, id); | 239 auto result = m_clipNodeMap.set(clipNode, id); |
247 DCHECK(result.isNewEntry); | 240 DCHECK(result.isNewEntry); |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); | 443 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
451 | 444 |
452 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); | 445 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
453 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 446 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
454 dummyLayer->SetClipTreeIndex(outputClipId); | 447 dummyLayer->SetClipTreeIndex(outputClipId); |
455 dummyLayer->SetEffectTreeIndex(effectNode.id); | 448 dummyLayer->SetEffectTreeIndex(effectNode.id); |
456 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 449 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
457 } | 450 } |
458 | 451 |
459 } // namespace blink | 452 } // namespace blink |
OLD | NEW |