| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |