| 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/draw_property_utils.h" | 5 #include "cc/trees/draw_property_utils.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 page_scale_factor, device_scale_factor, | 1589 page_scale_factor, device_scale_factor, |
| 1590 device_transform); | 1590 device_transform); |
| 1591 } | 1591 } |
| 1592 | 1592 |
| 1593 template <typename LayerType> | 1593 template <typename LayerType> |
| 1594 static void UpdateElasticOverscrollInternal( | 1594 static void UpdateElasticOverscrollInternal( |
| 1595 PropertyTrees* property_trees, | 1595 PropertyTrees* property_trees, |
| 1596 const LayerType* overscroll_elasticity_layer, | 1596 const LayerType* overscroll_elasticity_layer, |
| 1597 const gfx::Vector2dF& elastic_overscroll) { | 1597 const gfx::Vector2dF& elastic_overscroll) { |
| 1598 if (!overscroll_elasticity_layer) { | 1598 if (!overscroll_elasticity_layer) { |
| 1599 DCHECK(elastic_overscroll.IsZero()); | 1599 // When only the viewport has elasticity, elastic_overscroll should be zero |
| 1600 // here, but for now elasticity doesn't bubble up, only down. So, that won't |
| 1601 // be the case if a sublayer has its own overscroll. |
| 1602 // TODO(tapted): Give the viewport overscroll and completely remove |
| 1603 // overscroll_elasticity_layer. |
| 1600 return; | 1604 return; |
| 1601 } | 1605 } |
| 1602 | 1606 |
| 1603 TransformNode* node = property_trees->transform_tree.Node( | 1607 TransformNode* node = property_trees->transform_tree.Node( |
| 1604 overscroll_elasticity_layer->transform_tree_index()); | 1608 overscroll_elasticity_layer->transform_tree_index()); |
| 1605 if (node->scroll_offset == gfx::ScrollOffset(elastic_overscroll)) | 1609 if (node->scroll_offset_with_overscroll == |
| 1610 gfx::ScrollOffset(elastic_overscroll)) |
| 1606 return; | 1611 return; |
| 1607 | 1612 |
| 1608 node->scroll_offset = gfx::ScrollOffset(elastic_overscroll); | 1613 node->scroll_offset_with_overscroll = gfx::ScrollOffset(elastic_overscroll); |
| 1609 node->needs_local_transform_update = true; | 1614 node->needs_local_transform_update = true; |
| 1610 property_trees->transform_tree.set_needs_update(true); | 1615 property_trees->transform_tree.set_needs_update(true); |
| 1611 } | 1616 } |
| 1612 | 1617 |
| 1613 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1618 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1614 const LayerImpl* overscroll_elasticity_layer, | 1619 const LayerImpl* overscroll_elasticity_layer, |
| 1615 const gfx::Vector2dF& elastic_overscroll) { | 1620 const gfx::Vector2dF& elastic_overscroll) { |
| 1616 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1621 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1617 elastic_overscroll); | 1622 elastic_overscroll); |
| 1618 } | 1623 } |
| 1619 | 1624 |
| 1620 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1625 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1621 const Layer* overscroll_elasticity_layer, | 1626 const Layer* overscroll_elasticity_layer, |
| 1622 const gfx::Vector2dF& elastic_overscroll) { | 1627 const gfx::Vector2dF& elastic_overscroll) { |
| 1623 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1628 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1624 elastic_overscroll); | 1629 elastic_overscroll); |
| 1625 } | 1630 } |
| 1626 | 1631 |
| 1627 } // namespace draw_property_utils | 1632 } // namespace draw_property_utils |
| 1628 | 1633 |
| 1629 } // namespace cc | 1634 } // namespace cc |
| OLD | NEW |