| 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/property_tree.h" | 11 #include "cc/trees/property_tree.h" |
| 11 #include "cc/trees/scroll_node.h" | 12 #include "cc/trees/scroll_node.h" |
| 12 #include "cc/trees/transform_node.h" | 13 #include "cc/trees/transform_node.h" |
| 13 #include "platform/graphics/paint/ClipPaintPropertyNode.h" | 14 #include "platform/graphics/paint/ClipPaintPropertyNode.h" |
| 14 #include "platform/graphics/paint/EffectPaintPropertyNode.h" | 15 #include "platform/graphics/paint/EffectPaintPropertyNode.h" |
| 15 #include "platform/graphics/paint/GeometryMapper.h" | 16 #include "platform/graphics/paint/GeometryMapper.h" |
| 16 #include "platform/graphics/paint/ScrollPaintPropertyNode.h" | 17 #include "platform/graphics/paint/ScrollPaintPropertyNode.h" |
| 17 #include "platform/graphics/paint/TransformPaintPropertyNode.h" | 18 #include "platform/graphics/paint/TransformPaintPropertyNode.h" |
| 18 | 19 |
| 19 namespace blink { | 20 namespace blink { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 cc::TransformNode& transformNode = *transformTree.Node( | 67 cc::TransformNode& transformNode = *transformTree.Node( |
| 67 transformTree.Insert(cc::TransformNode(), kRealRootNodeId)); | 68 transformTree.Insert(cc::TransformNode(), kRealRootNodeId)); |
| 68 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId); | 69 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId); |
| 69 transformNode.source_node_id = transformNode.parent_id; | 70 transformNode.source_node_id = transformNode.parent_id; |
| 70 transformTree.SetTargetId(transformNode.id, kRealRootNodeId); | 71 transformTree.SetTargetId(transformNode.id, kRealRootNodeId); |
| 71 transformTree.SetContentTargetId(transformNode.id, kRealRootNodeId); | 72 transformTree.SetContentTargetId(transformNode.id, kRealRootNodeId); |
| 72 | 73 |
| 73 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root | 74 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root |
| 74 // transform node here. They should be set while updating transform tree in | 75 // transform node here. They should be set while updating transform tree in |
| 75 // cc. | 76 // cc. |
| 76 float deviceScaleFactor = m_rootLayer->GetLayerTree()->device_scale_factor(); | 77 float deviceScaleFactor = |
| 78 m_rootLayer->layer_tree_host()->device_scale_factor(); |
| 77 gfx::Transform toScreen; | 79 gfx::Transform toScreen; |
| 78 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); | 80 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); |
| 79 transformTree.SetToScreen(kRealRootNodeId, toScreen); | 81 transformTree.SetToScreen(kRealRootNodeId, toScreen); |
| 80 gfx::Transform fromScreen; | 82 gfx::Transform fromScreen; |
| 81 bool invertible = toScreen.GetInverse(&fromScreen); | 83 bool invertible = toScreen.GetInverse(&fromScreen); |
| 82 DCHECK(invertible); | 84 DCHECK(invertible); |
| 83 transformTree.SetFromScreen(kRealRootNodeId, fromScreen); | 85 transformTree.SetFromScreen(kRealRootNodeId, fromScreen); |
| 84 transformTree.set_needs_update(true); | 86 transformTree.set_needs_update(true); |
| 85 | 87 |
| 86 m_transformNodeMap.set(TransformPaintPropertyNode::root(), transformNode.id); | 88 m_transformNodeMap.set(TransformPaintPropertyNode::root(), transformNode.id); |
| 87 m_rootLayer->SetTransformTreeIndex(transformNode.id); | 89 m_rootLayer->SetTransformTreeIndex(transformNode.id); |
| 88 } | 90 } |
| 89 | 91 |
| 90 void PropertyTreeManager::setupRootClipNode() { | 92 void PropertyTreeManager::setupRootClipNode() { |
| 91 // cc is hardcoded to use clip node index 1 for viewport clip. | 93 // cc is hardcoded to use clip node index 1 for viewport clip. |
| 92 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; | 94 cc::ClipTree& clipTree = m_propertyTrees.clip_tree; |
| 93 clipTree.clear(); | 95 clipTree.clear(); |
| 94 m_propertyTrees.layer_id_to_clip_node_index.clear(); | 96 m_propertyTrees.layer_id_to_clip_node_index.clear(); |
| 95 cc::ClipNode& clipNode = | 97 cc::ClipNode& clipNode = |
| 96 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); | 98 *clipTree.Node(clipTree.Insert(cc::ClipNode(), kRealRootNodeId)); |
| 97 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); | 99 DCHECK_EQ(clipNode.id, kSecondaryRootNodeId); |
| 98 | 100 |
| 99 clipNode.resets_clip = true; | 101 clipNode.resets_clip = true; |
| 100 clipNode.owning_layer_id = m_rootLayer->id(); | 102 clipNode.owning_layer_id = m_rootLayer->id(); |
| 101 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; | 103 clipNode.clip_type = cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP; |
| 102 clipNode.clip = gfx::RectF( | 104 clipNode.clip = gfx::RectF( |
| 103 gfx::SizeF(m_rootLayer->GetLayerTree()->device_viewport_size())); | 105 gfx::SizeF(m_rootLayer->layer_tree_host()->device_viewport_size())); |
| 104 clipNode.transform_id = kRealRootNodeId; | 106 clipNode.transform_id = kRealRootNodeId; |
| 105 clipNode.target_transform_id = kRealRootNodeId; | 107 clipNode.target_transform_id = kRealRootNodeId; |
| 106 clipNode.target_effect_id = kSecondaryRootNodeId; | 108 clipNode.target_effect_id = kSecondaryRootNodeId; |
| 107 m_propertyTrees.layer_id_to_clip_node_index[clipNode.owning_layer_id] = | 109 m_propertyTrees.layer_id_to_clip_node_index[clipNode.owning_layer_id] = |
| 108 clipNode.id; | 110 clipNode.id; |
| 109 | 111 |
| 110 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); | 112 m_clipNodeMap.set(ClipPaintPropertyNode::root(), clipNode.id); |
| 111 m_rootLayer->SetClipTreeIndex(clipNode.id); | 113 m_rootLayer->SetClipTreeIndex(clipNode.id); |
| 112 } | 114 } |
| 113 | 115 |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); | 406 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
| 405 | 407 |
| 406 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); | 408 dummyLayer->set_property_tree_sequence_number(kPropertyTreeSequenceNumber); |
| 407 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 409 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
| 408 dummyLayer->SetClipTreeIndex(outputClipId); | 410 dummyLayer->SetClipTreeIndex(outputClipId); |
| 409 dummyLayer->SetEffectTreeIndex(effectNode.id); | 411 dummyLayer->SetEffectTreeIndex(effectNode.id); |
| 410 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 412 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 411 } | 413 } |
| 412 | 414 |
| 413 } // namespace blink | 415 } // namespace blink |
| OLD | NEW |