| 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 // Setting owning layer id on cc property tree transform nodes is temporary |
| 78 // until we can remove animation subsystem dependency on layer |
| 79 // references. http://crbug.com/709137 |
| 80 transformNode.owning_layer_id = m_rootLayer->id(); |
| 81 transformTree.SetOwningLayerIdForNode(&transformNode, |
| 82 transformNode.owning_layer_id); |
| 77 | 83 |
| 78 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root | 84 // TODO(jaydasika): We shouldn't set ToScreen and FromScreen of root |
| 79 // transform node here. They should be set while updating transform tree in | 85 // transform node here. They should be set while updating transform tree in |
| 80 // cc. | 86 // cc. |
| 81 float deviceScaleFactor = | 87 float deviceScaleFactor = |
| 82 m_rootLayer->layer_tree_host()->device_scale_factor(); | 88 m_rootLayer->layer_tree_host()->device_scale_factor(); |
| 83 gfx::Transform toScreen; | 89 gfx::Transform toScreen; |
| 84 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); | 90 toScreen.Scale(deviceScaleFactor, deviceScaleFactor); |
| 85 transformTree.SetToScreen(kRealRootNodeId, toScreen); | 91 transformTree.SetToScreen(kRealRootNodeId, toScreen); |
| 86 gfx::Transform fromScreen; | 92 gfx::Transform fromScreen; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 auto it = m_transformNodeMap.find(transformNode); | 162 auto it = m_transformNodeMap.find(transformNode); |
| 157 if (it != m_transformNodeMap.end()) | 163 if (it != m_transformNodeMap.end()) |
| 158 return it->value; | 164 return it->value; |
| 159 | 165 |
| 160 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); | 166 scoped_refptr<cc::Layer> dummyLayer = cc::Layer::Create(); |
| 161 int parentId = ensureCompositorTransformNode(transformNode->parent()); | 167 int parentId = ensureCompositorTransformNode(transformNode->parent()); |
| 162 int id = transformTree().Insert(cc::TransformNode(), parentId); | 168 int id = transformTree().Insert(cc::TransformNode(), parentId); |
| 163 | 169 |
| 164 cc::TransformNode& compositorNode = *transformTree().Node(id); | 170 cc::TransformNode& compositorNode = *transformTree().Node(id); |
| 165 compositorNode.source_node_id = parentId; | 171 compositorNode.source_node_id = parentId; |
| 172 // Setting owning layer id on cc property tree transform nodes is temporary |
| 173 // until we can remove animation subsystem dependency on layer |
| 174 // references. http://crbug.com/709137 |
| 175 compositorNode.owning_layer_id = dummyLayer->id(); |
| 176 transformTree().SetOwningLayerIdForNode(&compositorNode, |
| 177 compositorNode.owning_layer_id); |
| 166 | 178 |
| 167 FloatPoint3D origin = transformNode->origin(); | 179 FloatPoint3D origin = transformNode->origin(); |
| 168 compositorNode.pre_local.matrix().setTranslate(-origin.x(), -origin.y(), | 180 compositorNode.pre_local.matrix().setTranslate(-origin.x(), -origin.y(), |
| 169 -origin.z()); | 181 -origin.z()); |
| 170 compositorNode.local.matrix() = | 182 compositorNode.local.matrix() = |
| 171 TransformationMatrix::toSkMatrix44(transformNode->matrix()); | 183 TransformationMatrix::toSkMatrix44(transformNode->matrix()); |
| 172 compositorNode.post_local.matrix().setTranslate(origin.x(), origin.y(), | 184 compositorNode.post_local.matrix().setTranslate(origin.x(), origin.y(), |
| 173 origin.z()); | 185 origin.z()); |
| 174 compositorNode.needs_local_transform_update = true; | 186 compositorNode.needs_local_transform_update = true; |
| 175 compositorNode.flattens_inherited_transform = | 187 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}); | 451 m_effectStack.push_back(BlinkEffectAndCcIdPair{nextEffect, effectNode.id}); |
| 440 | 452 |
| 441 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); | 453 dummyLayer->set_property_tree_sequence_number(m_sequenceNumber); |
| 442 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); | 454 dummyLayer->SetTransformTreeIndex(kSecondaryRootNodeId); |
| 443 dummyLayer->SetClipTreeIndex(outputClipId); | 455 dummyLayer->SetClipTreeIndex(outputClipId); |
| 444 dummyLayer->SetEffectTreeIndex(effectNode.id); | 456 dummyLayer->SetEffectTreeIndex(effectNode.id); |
| 445 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); | 457 dummyLayer->SetScrollTreeIndex(kRealRootNodeId); |
| 446 } | 458 } |
| 447 | 459 |
| 448 } // namespace blink | 460 } // namespace blink |
| OLD | NEW |