| 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 float page_scale_factor; | 47 float page_scale_factor; |
| 48 bool in_subtree_of_page_scale_layer; | 48 bool in_subtree_of_page_scale_layer; |
| 49 bool affected_by_inner_viewport_bounds_delta; | 49 bool affected_by_inner_viewport_bounds_delta; |
| 50 bool affected_by_outer_viewport_bounds_delta; | 50 bool affected_by_outer_viewport_bounds_delta; |
| 51 bool should_flatten; | 51 bool should_flatten; |
| 52 bool target_is_clipped; | 52 bool target_is_clipped; |
| 53 bool is_hidden; | 53 bool is_hidden; |
| 54 uint32_t main_thread_scrolling_reasons; | 54 uint32_t main_thread_scrolling_reasons; |
| 55 bool scroll_tree_parent_created_by_uninheritable_criteria; | 55 bool scroll_tree_parent_created_by_uninheritable_criteria; |
| 56 const gfx::Transform* device_transform; | 56 const gfx::Transform* device_transform; |
| 57 gfx::Vector2dF scroll_compensation_adjustment; | 57 gfx::Vector2dF scroll_snap; |
| 58 gfx::Transform compound_transform_since_render_target; | 58 gfx::Transform compound_transform_since_render_target; |
| 59 bool axis_align_since_render_target; | 59 bool axis_align_since_render_target; |
| 60 int sequence_number; | 60 int sequence_number; |
| 61 SkColor safe_opaque_background_color; | 61 SkColor safe_opaque_background_color; |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 template <typename LayerType> | 64 template <typename LayerType> |
| 65 struct DataForRecursionFromChild { | 65 struct DataForRecursionFromChild { |
| 66 int num_copy_requests_in_subtree; | 66 int num_copy_requests_in_subtree; |
| 67 | 67 |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 LayerType* source = layer->parent(); | 280 LayerType* source = layer->parent(); |
| 281 source_offset += source->offset_to_transform_parent(); | 281 source_offset += source->offset_to_transform_parent(); |
| 282 source_index = source->transform_tree_index(); | 282 source_index = source->transform_tree_index(); |
| 283 } else if (!is_fixed) { | 283 } else if (!is_fixed) { |
| 284 source_offset = transform_parent->offset_to_transform_parent(); | 284 source_offset = transform_parent->offset_to_transform_parent(); |
| 285 } else { | 285 } else { |
| 286 source_offset = data_from_ancestor.transform_tree_parent | 286 source_offset = data_from_ancestor.transform_tree_parent |
| 287 ->offset_to_transform_parent(); | 287 ->offset_to_transform_parent(); |
| 288 source_index = | 288 source_index = |
| 289 data_from_ancestor.transform_tree_parent->transform_tree_index(); | 289 data_from_ancestor.transform_tree_parent->transform_tree_index(); |
| 290 source_offset += data_from_ancestor.scroll_compensation_adjustment; | 290 source_offset -= data_from_ancestor.scroll_snap; |
| 291 } | 291 } |
| 292 } | 292 } |
| 293 | 293 |
| 294 if (layer->IsContainerForFixedPositionLayers() || is_root) { | 294 if (layer->IsContainerForFixedPositionLayers() || is_root) { |
| 295 data_for_children->affected_by_inner_viewport_bounds_delta = | 295 data_for_children->affected_by_inner_viewport_bounds_delta = |
| 296 layer == data_from_ancestor.inner_viewport_scroll_layer; | 296 layer == data_from_ancestor.inner_viewport_scroll_layer; |
| 297 data_for_children->affected_by_outer_viewport_bounds_delta = | 297 data_for_children->affected_by_outer_viewport_bounds_delta = |
| 298 layer == data_from_ancestor.outer_viewport_scroll_layer; | 298 layer == data_from_ancestor.outer_viewport_scroll_layer; |
| 299 if (is_scrollable) { | 299 if (is_scrollable) { |
| 300 DCHECK(!is_root); | 300 DCHECK(!is_root); |
| 301 DCHECK(layer->transform().IsIdentity()); | 301 DCHECK(layer->transform().IsIdentity()); |
| 302 data_for_children->transform_fixed_parent = layer->parent(); | 302 data_for_children->transform_fixed_parent = layer->parent(); |
| 303 } else { | 303 } else { |
| 304 data_for_children->transform_fixed_parent = layer; | 304 data_for_children->transform_fixed_parent = layer; |
| 305 } | 305 } |
| 306 } | 306 } |
| 307 data_for_children->transform_tree_parent = layer; | 307 data_for_children->transform_tree_parent = layer; |
| 308 | 308 |
| 309 if (layer->IsContainerForFixedPositionLayers() || is_fixed) | 309 if (layer->IsContainerForFixedPositionLayers() || is_fixed) |
| 310 data_for_children->scroll_compensation_adjustment = gfx::Vector2dF(); | 310 data_for_children->scroll_snap = gfx::Vector2dF(); |
| 311 | 311 |
| 312 if (!requires_node) { | 312 if (!requires_node) { |
| 313 data_for_children->should_flatten |= layer->should_flatten_transform(); | 313 data_for_children->should_flatten |= layer->should_flatten_transform(); |
| 314 gfx::Vector2dF local_offset = layer->position().OffsetFromOrigin() + | 314 gfx::Vector2dF local_offset = layer->position().OffsetFromOrigin() + |
| 315 layer->transform().To2dTranslation(); | 315 layer->transform().To2dTranslation(); |
| 316 gfx::Vector2dF source_to_parent; | 316 gfx::Vector2dF source_to_parent; |
| 317 if (source_index != parent_index) { | 317 if (source_index != parent_index) { |
| 318 gfx::Transform to_parent; | 318 gfx::Transform to_parent; |
| 319 data_from_ancestor.transform_tree->ComputeTransform( | 319 data_from_ancestor.transform_tree->ComputeTransform( |
| 320 source_index, parent_index, &to_parent); | 320 source_index, parent_index, &to_parent); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 node->data.update_pre_local_transform(layer->transform_origin()); | 440 node->data.update_pre_local_transform(layer->transform_origin()); |
| 441 | 441 |
| 442 node->data.needs_local_transform_update = true; | 442 node->data.needs_local_transform_update = true; |
| 443 data_from_ancestor.transform_tree->UpdateTransforms(node->id); | 443 data_from_ancestor.transform_tree->UpdateTransforms(node->id); |
| 444 | 444 |
| 445 layer->set_offset_to_transform_parent(gfx::Vector2dF()); | 445 layer->set_offset_to_transform_parent(gfx::Vector2dF()); |
| 446 | 446 |
| 447 // Flattening (if needed) will be handled by |node|. | 447 // Flattening (if needed) will be handled by |node|. |
| 448 layer->set_should_flatten_transform_from_property_tree(false); | 448 layer->set_should_flatten_transform_from_property_tree(false); |
| 449 | 449 |
| 450 data_for_children->scroll_compensation_adjustment += | 450 data_for_children->scroll_snap += node->data.scroll_snap; |
| 451 layer->ScrollCompensationAdjustment() - node->data.scroll_snap; | |
| 452 | 451 |
| 453 node->owner_id = layer->id(); | 452 node->owner_id = layer->id(); |
| 454 | 453 |
| 455 return true; | 454 return true; |
| 456 } | 455 } |
| 457 | 456 |
| 458 bool IsAnimatingOpacity(Layer* layer) { | 457 bool IsAnimatingOpacity(Layer* layer) { |
| 459 return layer->HasPotentiallyRunningOpacityAnimation() || | 458 return layer->HasPotentiallyRunningOpacityAnimation() || |
| 460 layer->OpacityCanAnimateOnImplThread(); | 459 layer->OpacityCanAnimateOnImplThread(); |
| 461 } | 460 } |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 994 if (SkColorGetA(color) != 255) | 993 if (SkColorGetA(color) != 255) |
| 995 color = SkColorSetA(color, 255); | 994 color = SkColorSetA(color, 255); |
| 996 BuildPropertyTreesTopLevelInternal( | 995 BuildPropertyTreesTopLevelInternal( |
| 997 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 996 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 998 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 997 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 999 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 998 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
| 1000 device_transform, property_trees, color); | 999 device_transform, property_trees, color); |
| 1001 } | 1000 } |
| 1002 | 1001 |
| 1003 } // namespace cc | 1002 } // namespace cc |
| OLD | NEW |