Chromium Code Reviews| 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 67 void PropertyTreeManager::setupRootTransformNode() { | 67 void PropertyTreeManager::setupRootTransformNode() { |
| 68 // cc is hardcoded to use transform node index 1 for device scale and | 68 // cc is hardcoded to use transform node index 1 for device scale and |
| 69 // transform. | 69 // transform. |
| 70 cc::TransformTree& transformTree = m_propertyTrees.transform_tree; | 70 cc::TransformTree& transformTree = m_propertyTrees.transform_tree; |
| 71 transformTree.clear(); | 71 transformTree.clear(); |
| 72 m_propertyTrees.element_id_to_transform_node_index.clear(); | 72 m_propertyTrees.element_id_to_transform_node_index.clear(); |
| 73 cc::TransformNode& transformNode = *transformTree.Node( | 73 cc::TransformNode& transformNode = *transformTree.Node( |
| 74 transformTree.Insert(cc::TransformNode(), kRealRootNodeId)); | 74 transformTree.Insert(cc::TransformNode(), kRealRootNodeId)); |
| 75 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId); | 75 DCHECK_EQ(transformNode.id, kSecondaryRootNodeId); |
| 76 transformNode.source_node_id = transformNode.parent_id; | 76 transformNode.source_node_id = transformNode.parent_id; |
| 77 transformNode.owning_layer_id = m_rootLayer->id(); | |
|
chrishtr
2017/04/06 18:15:21
Please add a comment here and in the other instanc
wkorman
2017/04/06 18:48:26
Done. Note we were already setting owning_layer_id
| |
| 78 transformTree.SetOwningLayerIdForNode(&transformNode, | |
| 79 transformNode.owning_layer_id); | |
| 77 | 80 |
| 78 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root | 81 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root |
| 79 // transform node here. They should be set while updating transform tree in | 82 // transform node here. They should be set while updating transform tree in |
| 80 // cc. | 83 // cc. |
| 81 float deviceScaleFactor = | 84 float deviceScaleFactor = |
| 82 m_rootLayer->layer_tree_host()->device_scale_factor(); | 85 m_rootLayer->layer_tree_host()->device_scale_factor(); |
| 83 gfx::Transform toScreen; | 86 gfx::Transform toScreen; |
| 84 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); | 87 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); |
| 85 transformTree.SetToScreen(kRealRootNodeId, toScreen); | 88 transformTree.SetToScreen(kRealRootNodeId, toScreen); |
| 86 gfx::Transform fromScreen; | 89 gfx::Transform fromScreen; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 156 auto it = m_transformNodeMap.find(transformNode); | 159 auto it = m_transformNodeMap.find(transformNode); |
| 157 if (it != m_transformNodeMap.end()) | 160 if (it != m_transformNodeMap.end()) |
| 158 return it->value; | 161 return it->value; |
| 159 | 162 |
| 160 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); | 163 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); |
| 161 int parentId = ensureCompositorTransformNode(transformNode->parent()); | 164 int parentId = ensureCompositorTransformNode(transformNode->parent()); |
| 162 int id = transformTree().Insert(cc::TransformNode(), parentId); | 165 int id = transformTree().Insert(cc::TransformNode(), parentId); |
| 163 | 166 |
| 164 cc::TransformNode& compositorNode = *transformTree().Node(id); | 167 cc::TransformNode& compositorNode = *transformTree().Node(id); |
| 165 compositorNode.source_node_id = parentId; | 168 compositorNode.source_node_id = parentId; |
| 169 compositorNode.owning_layer_id = dummyLayer->id(); | |
| 170 transformTree().SetOwningLayerIdForNode(&compositorNode, | |
| 171 compositorNode.owning_layer_id); | |
| 166 | 172 |
| 167 FloatPoint3D origin = transformNode->origin(); | 173 FloatPoint3D origin = transformNode->origin(); |
| 168 compositorNode.pre_local.matrix().setTranslate(-origin.x(), -origin.y(), | 174 compositorNode.pre_local.matrix().setTranslate(-origin.x(), -origin.y(), |
| 169 -origin.z()); | 175 -origin.z()); |
| 170 compositorNode.local.matrix() = | 176 compositorNode.local.matrix() = |
| 171 TransformationMatrix::toSkMatrix44(transformNode->matrix()); | 177 TransformationMatrix::toSkMatrix44(transformNode->matrix()); |
| 172 compositorNode.post_local.matrix().setTranslate(origin.x(), origin.y(), | 178 compositorNode.post_local.matrix().setTranslate(origin.x(), origin.y(), |
| 173 origin.z()); | 179 origin.z()); |
| 174 compositorNode.needs_local_transform_update = true; | 180 compositorNode.needs_local_transform_update = true; |
| 175 compositorNode.flattens_inherited_transform = | 181 compositorNode.flattens_inherited_transform = |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 439 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); | 445 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
| 440 | 446 |
| 441 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); | 447 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
| 442 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 448 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
| 443 dummyLayer->SetClipTreeIndex(outputClipId); | 449 dummyLayer->SetClipTreeIndex(outputClipId); |
| 444 dummyLayer->SetEffectTreeIndex(effectNode.id); | 450 dummyLayer->SetEffectTreeIndex(effectNode.id); |
| 445 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 451 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 446 } | 452 } |
| 447 | 453 |
| 448 } // namespace blink | 454 } // namespace blink |
| OLD | NEW |