| 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 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1431 page_scale_factor, device_scale_factor, | 1431 page_scale_factor, device_scale_factor, |
| 1432 device_transform); | 1432 device_transform); |
| 1433 } | 1433 } |
| 1434 | 1434 |
| 1435 template <typename LayerType> | 1435 template <typename LayerType> |
| 1436 static void UpdateElasticOverscrollInternal( | 1436 static void UpdateElasticOverscrollInternal( |
| 1437 PropertyTrees* property_trees, | 1437 PropertyTrees* property_trees, |
| 1438 const LayerType* overscroll_elasticity_layer, | 1438 const LayerType* overscroll_elasticity_layer, |
| 1439 const gfx::Vector2dF& elastic_overscroll) { | 1439 const gfx::Vector2dF& elastic_overscroll) { |
| 1440 if (!overscroll_elasticity_layer) { | 1440 if (!overscroll_elasticity_layer) { |
| 1441 DCHECK(elastic_overscroll.IsZero()); | 1441 // When only the viewport has elasticity, elastic_overscroll should be zero |
| 1442 // here, but for now elasticity doesn't bubble up, only down. So, that won't |
| 1443 // be the case if a sublayer has its own overscroll. |
| 1444 // TODO(tapted): Give the viewport overscroll and completely remove |
| 1445 // overscroll_elasticity_layer. |
| 1442 return; | 1446 return; |
| 1443 } | 1447 } |
| 1444 | 1448 |
| 1445 TransformNode* node = property_trees->transform_tree.Node( | 1449 TransformNode* node = property_trees->transform_tree.Node( |
| 1446 overscroll_elasticity_layer->transform_tree_index()); | 1450 overscroll_elasticity_layer->transform_tree_index()); |
| 1447 if (node->scroll_offset == gfx::ScrollOffset(elastic_overscroll)) | 1451 if (node->scroll_offset_with_overscroll == |
| 1452 gfx::ScrollOffset(elastic_overscroll)) |
| 1448 return; | 1453 return; |
| 1449 | 1454 |
| 1450 node->scroll_offset = gfx::ScrollOffset(elastic_overscroll); | 1455 node->scroll_offset_with_overscroll = gfx::ScrollOffset(elastic_overscroll); |
| 1451 node->needs_local_transform_update = true; | 1456 node->needs_local_transform_update = true; |
| 1452 property_trees->transform_tree.set_needs_update(true); | 1457 property_trees->transform_tree.set_needs_update(true); |
| 1453 } | 1458 } |
| 1454 | 1459 |
| 1455 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1460 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1456 const LayerImpl* overscroll_elasticity_layer, | 1461 const LayerImpl* overscroll_elasticity_layer, |
| 1457 const gfx::Vector2dF& elastic_overscroll) { | 1462 const gfx::Vector2dF& elastic_overscroll) { |
| 1458 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1463 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1459 elastic_overscroll); | 1464 elastic_overscroll); |
| 1460 } | 1465 } |
| 1461 | 1466 |
| 1462 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1467 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1463 const Layer* overscroll_elasticity_layer, | 1468 const Layer* overscroll_elasticity_layer, |
| 1464 const gfx::Vector2dF& elastic_overscroll) { | 1469 const gfx::Vector2dF& elastic_overscroll) { |
| 1465 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1470 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1466 elastic_overscroll); | 1471 elastic_overscroll); |
| 1467 } | 1472 } |
| 1468 | 1473 |
| 1469 } // namespace draw_property_utils | 1474 } // namespace draw_property_utils |
| 1470 | 1475 |
| 1471 } // namespace cc | 1476 } // namespace cc |
| OLD | NEW |