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

Side by Side Diff: cc/trees/property_tree_builder.cc

Issue 903273002: Update from https://crrev.com/315085 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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
« no previous file with comments | « cc/trees/layer_tree_settings.cc ('k') | cc/trees/proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "cc/trees/property_tree_builder.h" 5 #include "cc/trees/property_tree_builder.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "cc/base/math_util.h" 10 #include "cc/base/math_util.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 layer->set_transform_tree_index(transform_parent->transform_tree_index()); 164 layer->set_transform_tree_index(transform_parent->transform_tree_index());
165 return; 165 return;
166 } 166 }
167 167
168 if (!is_root) { 168 if (!is_root) {
169 data_for_children->transform_tree->Insert( 169 data_for_children->transform_tree->Insert(
170 TransformNode(), transform_parent->transform_tree_index()); 170 TransformNode(), transform_parent->transform_tree_index());
171 } 171 }
172 172
173 TransformNode* node = data_for_children->transform_tree->back(); 173 TransformNode* node = data_for_children->transform_tree->back();
174 layer->set_transform_tree_index(node->id);
174 175
175 node->data.flattens = layer->should_flatten_transform(); 176 node->data.flattens = layer->should_flatten_transform();
176 node->data.target_id = 177 node->data.target_id =
177 data_from_ancestor.render_target->transform_tree_index(); 178 data_from_ancestor.render_target->transform_tree_index();
179 DCHECK_NE(node->data.target_id, -1);
178 node->data.is_animated = layer->TransformIsAnimating(); 180 node->data.is_animated = layer->TransformIsAnimating();
179 181
180 gfx::Transform transform; 182 gfx::Transform transform;
181 float device_and_page_scale_factors = 1.0f; 183 float device_and_page_scale_factors = 1.0f;
182 if (is_root) 184 if (is_root)
183 device_and_page_scale_factors = data_from_ancestor.device_scale_factor; 185 device_and_page_scale_factors = data_from_ancestor.device_scale_factor;
184 if (is_page_scale_application_layer) 186 if (is_page_scale_application_layer)
185 device_and_page_scale_factors *= data_from_ancestor.page_scale_factor; 187 device_and_page_scale_factors *= data_from_ancestor.page_scale_factor;
186 188
187 transform.Scale(device_and_page_scale_factors, device_and_page_scale_factors); 189 transform.Scale(device_and_page_scale_factors, device_and_page_scale_factors);
(...skipping 19 matching lines...) Expand all
207 transform.Translate3d(-layer->transform_origin().x(), 209 transform.Translate3d(-layer->transform_origin().x(),
208 -layer->transform_origin().y(), 210 -layer->transform_origin().y(),
209 -layer->transform_origin().z()); 211 -layer->transform_origin().z());
210 212
211 node->data.to_parent = transform; 213 node->data.to_parent = transform;
212 node->data.is_invertible = transform.GetInverse(&node->data.from_parent); 214 node->data.is_invertible = transform.GetInverse(&node->data.from_parent);
213 215
214 data_from_ancestor.transform_tree->UpdateScreenSpaceTransform(node->id); 216 data_from_ancestor.transform_tree->UpdateScreenSpaceTransform(node->id);
215 217
216 layer->set_offset_to_transform_parent(gfx::Vector2dF()); 218 layer->set_offset_to_transform_parent(gfx::Vector2dF());
217 layer->set_transform_tree_index(node->id);
218 } 219 }
219 220
220 void BuildPropertyTreesInternal(Layer* layer, 221 void BuildPropertyTreesInternal(Layer* layer,
221 const DataForRecursion& data_from_parent) { 222 const DataForRecursion& data_from_parent) {
222 DataForRecursion data_for_children(data_from_parent); 223 DataForRecursion data_for_children(data_from_parent);
223 if (layer->render_surface()) 224 if (layer->render_surface())
224 data_for_children.render_target = layer; 225 data_for_children.render_target = layer;
225 226
226 AddTransformNodeIfNeeded(data_from_parent, layer, &data_for_children); 227 AddTransformNodeIfNeeded(data_from_parent, layer, &data_for_children);
227 AddClipNodeIfNeeded(data_from_parent, layer, &data_for_children); 228 AddClipNodeIfNeeded(data_from_parent, layer, &data_for_children);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 data_for_recursion.clip_tree_parent = clip_tree->Insert(root_clip, 0); 272 data_for_recursion.clip_tree_parent = clip_tree->Insert(root_clip, 0);
272 273
273 BuildPropertyTreesInternal(root_layer, data_for_recursion); 274 BuildPropertyTreesInternal(root_layer, data_for_recursion);
274 275
275 TransformNode* transform_root = transform_tree->Node(transform_root_id); 276 TransformNode* transform_root = transform_tree->Node(transform_root_id);
276 transform_root->data.set_to_parent(device_transform * 277 transform_root->data.set_to_parent(device_transform *
277 transform_root->data.to_parent); 278 transform_root->data.to_parent);
278 } 279 }
279 280
280 } // namespace cc 281 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_settings.cc ('k') | cc/trees/proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698