Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/compositing/PropertyTreeManager.cpp

Issue 2661523003: cc: Merge LayerTree into the LayerTreeHost. (Closed)
Patch Set: auto Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698