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 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
752 // viewport bounds change, but do not unconditionally move by that delta | 752 // viewport bounds change, but do not unconditionally move by that delta |
753 // like fixed position nodes. | 753 // like fixed position nodes. |
754 if (scroll_ancestor->scrolls_inner_viewport) { | 754 if (scroll_ancestor->scrolls_inner_viewport) { |
755 data_for_children->property_trees->transform_tree | 755 data_for_children->property_trees->transform_tree |
756 .AddNodeAffectedByInnerViewportBoundsDelta(node->id); | 756 .AddNodeAffectedByInnerViewportBoundsDelta(node->id); |
757 } else if (scroll_ancestor->scrolls_outer_viewport) { | 757 } else if (scroll_ancestor->scrolls_outer_viewport) { |
758 data_for_children->property_trees->transform_tree | 758 data_for_children->property_trees->transform_tree |
759 .AddNodeAffectedByOuterViewportBoundsDelta(node->id); | 759 .AddNodeAffectedByOuterViewportBoundsDelta(node->id); |
760 } | 760 } |
761 } | 761 } |
762 // This calculation will be incorrect if we have an ancestor sticky element | |
763 // that is not composited: http://crbug.com/702229 | |
762 sticky_data->main_thread_offset = | 764 sticky_data->main_thread_offset = |
763 layer->position().OffsetFromOrigin() - | 765 layer->position().OffsetFromOrigin() - |
764 sticky_data->constraints.parent_relative_sticky_box_offset | 766 sticky_data->constraints.parent_relative_sticky_box_offset |
765 .OffsetFromOrigin(); | 767 .OffsetFromOrigin(); |
768 | |
769 // Copy the ancestor nodes for later use. These layers are guaranteed to | |
770 // have transform nodes at this point because they are our ancestors (so | |
771 // have already been processed) and are sticky (so have transform nodes). | |
772 int x = sticky_data->constraints.nearest_layer_shifting_sticky_box; | |
flackr
2017/03/17 18:04:08
nit: Use descriptive variable names
smcgruer
2017/03/17 18:42:42
Done.
| |
773 if (x >= 0) { | |
flackr
2017/03/17 18:04:08
Compare to the invalid id constant.
smcgruer
2017/03/17 18:42:42
Done.
| |
774 DCHECK(data_for_children->property_trees->IsInIdToIndexMap( | |
775 PropertyTrees::TreeType::TRANSFORM, x)); | |
776 sticky_data->nearest_node_shifting_sticky_box = | |
777 data_for_children->property_trees | |
778 ->layer_id_to_transform_node_index[x]; | |
779 } | |
780 int y = sticky_data->constraints.nearest_layer_shifting_containing_block; | |
781 if (y >= 0) { | |
782 DCHECK(data_for_children->property_trees->IsInIdToIndexMap( | |
783 PropertyTrees::TreeType::TRANSFORM, y)); | |
784 sticky_data->nearest_node_shifting_containing_block = | |
785 data_for_children->property_trees | |
786 ->layer_id_to_transform_node_index[y]; | |
787 } | |
766 } | 788 } |
767 | 789 |
768 node->needs_local_transform_update = true; | 790 node->needs_local_transform_update = true; |
769 data_from_ancestor.property_trees->transform_tree.UpdateTransforms(node->id); | 791 data_from_ancestor.property_trees->transform_tree.UpdateTransforms(node->id); |
770 | 792 |
771 layer->set_offset_to_transform_parent(gfx::Vector2dF()); | 793 layer->set_offset_to_transform_parent(gfx::Vector2dF()); |
772 | 794 |
773 // Flattening (if needed) will be handled by |node|. | 795 // Flattening (if needed) will be handled by |node|. |
774 layer->set_should_flatten_transform_from_property_tree(false); | 796 layer->set_should_flatten_transform_from_property_tree(false); |
775 | 797 |
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1547 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1569 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1548 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1570 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1549 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1571 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1550 device_transform, property_trees, color); | 1572 device_transform, property_trees, color); |
1551 property_trees->effect_tree.CreateOrReuseRenderSurfaces( | 1573 property_trees->effect_tree.CreateOrReuseRenderSurfaces( |
1552 &render_surfaces, root_layer->layer_tree_impl()); | 1574 &render_surfaces, root_layer->layer_tree_impl()); |
1553 property_trees->ResetCachedData(); | 1575 property_trees->ResetCachedData(); |
1554 } | 1576 } |
1555 | 1577 |
1556 } // namespace cc | 1578 } // namespace cc |
OLD | NEW |