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

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

Issue 1908593002: cc : Stop pushing transform origin from Layer and LayerImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 } 213 }
214 214
215 template <typename LayerType> 215 template <typename LayerType>
216 static inline bool IsAtBoundaryOf3dRenderingContext(LayerType* layer) { 216 static inline bool IsAtBoundaryOf3dRenderingContext(LayerType* layer) {
217 return layer->parent() 217 return layer->parent()
218 ? layer->parent()->sorting_context_id() != 218 ? layer->parent()->sorting_context_id() !=
219 layer->sorting_context_id() 219 layer->sorting_context_id()
220 : layer->Is3dSorted(); 220 : layer->Is3dSorted();
221 } 221 }
222 222
223 static inline gfx::Point3F TransformOrigin(Layer* layer) {
224 return layer->transform_origin();
225 }
226
227 static inline gfx::Point3F TransformOrigin(LayerImpl* layer) {
228 return layer->test_properties()->transform_origin;
229 }
230
223 template <typename LayerType> 231 template <typename LayerType>
224 bool AddTransformNodeIfNeeded( 232 bool AddTransformNodeIfNeeded(
225 const DataForRecursion<LayerType>& data_from_ancestor, 233 const DataForRecursion<LayerType>& data_from_ancestor,
226 LayerType* layer, 234 LayerType* layer,
227 bool created_render_surface, 235 bool created_render_surface,
228 DataForRecursion<LayerType>* data_for_children) { 236 DataForRecursion<LayerType>* data_for_children) {
229 const bool is_root = !layer->parent(); 237 const bool is_root = !layer->parent();
230 const bool is_page_scale_layer = layer == data_from_ancestor.page_scale_layer; 238 const bool is_page_scale_layer = layer == data_from_ancestor.page_scale_layer;
231 const bool is_overscroll_elasticity_layer = 239 const bool is_overscroll_elasticity_layer =
232 layer == data_from_ancestor.overscroll_elasticity_layer; 240 layer == data_from_ancestor.overscroll_elasticity_layer;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 node->data.source_node_id = source_index; 402 node->data.source_node_id = source_index;
395 node->data.post_local_scale_factor = post_local_scale_factor; 403 node->data.post_local_scale_factor = post_local_scale_factor;
396 if (is_root) { 404 if (is_root) {
397 data_for_children->transform_tree->SetDeviceTransform( 405 data_for_children->transform_tree->SetDeviceTransform(
398 *data_from_ancestor.device_transform, layer->position()); 406 *data_from_ancestor.device_transform, layer->position());
399 data_for_children->transform_tree->SetDeviceTransformScaleFactor( 407 data_for_children->transform_tree->SetDeviceTransformScaleFactor(
400 *data_from_ancestor.device_transform); 408 *data_from_ancestor.device_transform);
401 } else { 409 } else {
402 node->data.source_offset = source_offset; 410 node->data.source_offset = source_offset;
403 node->data.update_post_local_transform(layer->position(), 411 node->data.update_post_local_transform(layer->position(),
404 layer->transform_origin()); 412 TransformOrigin(layer));
405 } 413 }
406 414
407 if (is_overscroll_elasticity_layer) { 415 if (is_overscroll_elasticity_layer) {
408 DCHECK(!is_scrollable); 416 DCHECK(!is_scrollable);
409 node->data.scroll_offset = 417 node->data.scroll_offset =
410 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll); 418 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll);
411 } else if (!layer->scroll_parent()) { 419 } else if (!layer->scroll_parent()) {
412 node->data.scroll_offset = layer->CurrentScrollOffset(); 420 node->data.scroll_offset = layer->CurrentScrollOffset();
413 } 421 }
414 422
(...skipping 15 matching lines...) Expand all
430 layer->position_constraint().is_fixed_to_bottom_edge(); 438 layer->position_constraint().is_fixed_to_bottom_edge();
431 if (node->data.affected_by_outer_viewport_bounds_delta_x || 439 if (node->data.affected_by_outer_viewport_bounds_delta_x ||
432 node->data.affected_by_outer_viewport_bounds_delta_y) { 440 node->data.affected_by_outer_viewport_bounds_delta_y) {
433 data_for_children->transform_tree 441 data_for_children->transform_tree
434 ->AddNodeAffectedByOuterViewportBoundsDelta(node->id); 442 ->AddNodeAffectedByOuterViewportBoundsDelta(node->id);
435 } 443 }
436 } 444 }
437 } 445 }
438 446
439 node->data.local = layer->transform(); 447 node->data.local = layer->transform();
440 node->data.update_pre_local_transform(layer->transform_origin()); 448 node->data.update_pre_local_transform(TransformOrigin(layer));
441 449
442 node->data.needs_local_transform_update = true; 450 node->data.needs_local_transform_update = true;
443 data_from_ancestor.transform_tree->UpdateTransforms(node->id); 451 data_from_ancestor.transform_tree->UpdateTransforms(node->id);
444 452
445 layer->set_offset_to_transform_parent(gfx::Vector2dF()); 453 layer->set_offset_to_transform_parent(gfx::Vector2dF());
446 454
447 // Flattening (if needed) will be handled by |node|. 455 // Flattening (if needed) will be handled by |node|.
448 layer->set_should_flatten_transform_from_property_tree(false); 456 layer->set_should_flatten_transform_from_property_tree(false);
449 457
450 data_for_children->scroll_snap += node->data.scroll_snap; 458 data_for_children->scroll_snap += node->data.scroll_snap;
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 if (SkColorGetA(color) != 255) 1004 if (SkColorGetA(color) != 255)
997 color = SkColorSetA(color, 255); 1005 color = SkColorSetA(color, 255);
998 BuildPropertyTreesTopLevelInternal( 1006 BuildPropertyTreesTopLevelInternal(
999 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1007 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1000 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1008 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1001 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1009 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1002 device_transform, property_trees, color); 1010 device_transform, property_trees, color);
1003 } 1011 }
1004 1012
1005 } // namespace cc 1013 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | third_party/WebKit/Source/platform/graphics/CompositorMutableStateTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698