| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/layers/layer_impl.h" | 5 #include "cc/layers/layer_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1445 void LayerImpl::SetCurrentScrollOffset(const gfx::ScrollOffset& scroll_offset) { | 1445 void LayerImpl::SetCurrentScrollOffset(const gfx::ScrollOffset& scroll_offset) { |
| 1446 DCHECK(IsActive()); | 1446 DCHECK(IsActive()); |
| 1447 if (synced_scroll_offset()->SetCurrent(scroll_offset)) | 1447 if (synced_scroll_offset()->SetCurrent(scroll_offset)) |
| 1448 DidUpdateScrollOffset(); | 1448 DidUpdateScrollOffset(); |
| 1449 } | 1449 } |
| 1450 | 1450 |
| 1451 gfx::ScrollOffset LayerImpl::CurrentScrollOffset() const { | 1451 gfx::ScrollOffset LayerImpl::CurrentScrollOffset() const { |
| 1452 return synced_scroll_offset()->Current(IsActive()); | 1452 return synced_scroll_offset()->Current(IsActive()); |
| 1453 } | 1453 } |
| 1454 | 1454 |
| 1455 gfx::Vector2dF LayerImpl::ScrollDelta() const { | |
| 1456 if (IsActive()) | |
| 1457 return gfx::Vector2dF(synced_scroll_offset()->Delta().x(), | |
| 1458 synced_scroll_offset()->Delta().y()); | |
| 1459 else | |
| 1460 return gfx::Vector2dF(synced_scroll_offset()->PendingDelta().get().x(), | |
| 1461 synced_scroll_offset()->PendingDelta().get().y()); | |
| 1462 } | |
| 1463 | |
| 1464 void LayerImpl::SetScrollDelta(const gfx::Vector2dF& delta) { | |
| 1465 DCHECK(IsActive()); | |
| 1466 DCHECK(scrollable() || delta.IsZero()); | |
| 1467 SetCurrentScrollOffset(synced_scroll_offset()->ActiveBase() + | |
| 1468 gfx::ScrollOffset(delta)); | |
| 1469 } | |
| 1470 | |
| 1471 gfx::ScrollOffset LayerImpl::BaseScrollOffset() const { | |
| 1472 if (IsActive()) | |
| 1473 return synced_scroll_offset()->ActiveBase(); | |
| 1474 else | |
| 1475 return synced_scroll_offset()->PendingBase(); | |
| 1476 } | |
| 1477 | |
| 1478 void LayerImpl::PushScrollOffsetFromMainThread( | |
| 1479 const gfx::ScrollOffset& scroll_offset) { | |
| 1480 bool changed = false; | |
| 1481 DCHECK(!IsActive() || !layer_tree_impl_->FindPendingTreeLayerById(id())); | |
| 1482 changed |= synced_scroll_offset()->PushFromMainThread(scroll_offset); | |
| 1483 | |
| 1484 if (IsActive()) { | |
| 1485 changed |= synced_scroll_offset()->PushPendingToActive(); | |
| 1486 } | |
| 1487 | |
| 1488 if (changed) | |
| 1489 DidUpdateScrollOffset(); | |
| 1490 } | |
| 1491 | |
| 1492 void LayerImpl::UpdatePropertyTreeScrollOffset() { | 1455 void LayerImpl::UpdatePropertyTreeScrollOffset() { |
| 1493 // TODO(enne): in the future, scrolling should update the scroll tree | 1456 // TODO(enne): in the future, scrolling should update the scroll tree |
| 1494 // directly instead of going through layers. | 1457 // directly instead of going through layers. |
| 1495 if (transform_tree_index_ != -1) { | 1458 if (transform_tree_index_ != -1) { |
| 1496 TransformTree& transform_tree = | 1459 TransformTree& transform_tree = |
| 1497 layer_tree_impl()->property_trees()->transform_tree; | 1460 layer_tree_impl()->property_trees()->transform_tree; |
| 1498 TransformNode* node = transform_tree.Node(transform_tree_index_); | 1461 TransformNode* node = transform_tree.Node(transform_tree_index_); |
| 1499 gfx::ScrollOffset current_offset = | 1462 gfx::ScrollOffset current_offset = |
| 1500 synced_scroll_offset()->Current(IsActive()); | 1463 synced_scroll_offset()->Current(IsActive()); |
| 1501 if (node->data.scroll_offset != current_offset) { | 1464 if (node->data.scroll_offset != current_offset) { |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1795 .layer_transforms_should_scale_layer_contents) { | 1758 .layer_transforms_should_scale_layer_contents) { |
| 1796 return default_scale; | 1759 return default_scale; |
| 1797 } | 1760 } |
| 1798 | 1761 |
| 1799 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( | 1762 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( |
| 1800 DrawTransform(), default_scale); | 1763 DrawTransform(), default_scale); |
| 1801 return std::max(transform_scales.x(), transform_scales.y()); | 1764 return std::max(transform_scales.x(), transform_scales.y()); |
| 1802 } | 1765 } |
| 1803 | 1766 |
| 1804 } // namespace cc | 1767 } // namespace cc |
| OLD | NEW |