| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/layer_tree_impl.h" | 5 #include "cc/trees/layer_tree_impl.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 target_tree->top_controls_delta_ = | 214 target_tree->top_controls_delta_ = |
| 215 target_tree->top_controls_delta_ - | 215 target_tree->top_controls_delta_ - |
| 216 target_tree->sent_top_controls_delta_; | 216 target_tree->sent_top_controls_delta_; |
| 217 target_tree->sent_top_controls_delta_ = 0.f; | 217 target_tree->sent_top_controls_delta_ = 0.f; |
| 218 | 218 |
| 219 target_tree->SetPageScaleValues( | 219 target_tree->SetPageScaleValues( |
| 220 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor(), | 220 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor(), |
| 221 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); | 221 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); |
| 222 target_tree->set_sent_page_scale_delta(1); | 222 target_tree->set_sent_page_scale_delta(1); |
| 223 | 223 |
| 224 target_tree->page_scale_animation_ = page_scale_animation_.Pass(); | 224 target_tree->pending_page_scale_animation_ = |
| 225 pending_page_scale_animation_.Pass(); |
| 225 | 226 |
| 226 if (page_scale_layer_ && inner_viewport_scroll_layer_) { | 227 if (page_scale_layer_ && inner_viewport_scroll_layer_) { |
| 227 target_tree->SetViewportLayersFromIds( | 228 target_tree->SetViewportLayersFromIds( |
| 228 page_scale_layer_->id(), | 229 page_scale_layer_->id(), |
| 229 inner_viewport_scroll_layer_->id(), | 230 inner_viewport_scroll_layer_->id(), |
| 230 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() | 231 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() |
| 231 : Layer::INVALID_ID); | 232 : Layer::INVALID_ID); |
| 232 } else { | 233 } else { |
| 233 target_tree->ClearViewportLayers(); | 234 target_tree->ClearViewportLayers(); |
| 234 } | 235 } |
| (...skipping 1238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1473 } | 1474 } |
| 1474 | 1475 |
| 1475 bool LayerTreeImpl::SmoothnessTakesPriority() const { | 1476 bool LayerTreeImpl::SmoothnessTakesPriority() const { |
| 1476 return layer_tree_host_impl_->GetTreePriority() == SMOOTHNESS_TAKES_PRIORITY; | 1477 return layer_tree_host_impl_->GetTreePriority() == SMOOTHNESS_TAKES_PRIORITY; |
| 1477 } | 1478 } |
| 1478 | 1479 |
| 1479 BlockingTaskRunner* LayerTreeImpl::BlockingMainThreadTaskRunner() const { | 1480 BlockingTaskRunner* LayerTreeImpl::BlockingMainThreadTaskRunner() const { |
| 1480 return proxy()->blocking_main_thread_task_runner(); | 1481 return proxy()->blocking_main_thread_task_runner(); |
| 1481 } | 1482 } |
| 1482 | 1483 |
| 1483 void LayerTreeImpl::SetPageScaleAnimation( | 1484 void LayerTreeImpl::SetPendingPageScaleAnimation( |
| 1484 const gfx::Vector2d& target_offset, | 1485 scoped_ptr<PendingPageScaleAnimation> pending_animation) { |
| 1485 bool anchor_point, | 1486 pending_page_scale_animation_ = pending_animation.Pass(); |
| 1486 float page_scale, | |
| 1487 base::TimeDelta duration) { | |
| 1488 if (!InnerViewportScrollLayer()) | |
| 1489 return; | |
| 1490 | |
| 1491 gfx::ScrollOffset scroll_total = TotalScrollOffset(); | |
| 1492 gfx::SizeF scaled_scrollable_size = ScrollableSize(); | |
| 1493 gfx::SizeF viewport_size = InnerViewportContainerLayer()->bounds(); | |
| 1494 | |
| 1495 // Easing constants experimentally determined. | |
| 1496 scoped_ptr<TimingFunction> timing_function = | |
| 1497 CubicBezierTimingFunction::Create(.8, 0, .3, .9); | |
| 1498 | |
| 1499 // TODO(miletus) : Pass in ScrollOffset. | |
| 1500 page_scale_animation_ = | |
| 1501 PageScaleAnimation::Create(ScrollOffsetToVector2dF(scroll_total), | |
| 1502 total_page_scale_factor(), | |
| 1503 viewport_size, | |
| 1504 scaled_scrollable_size, | |
| 1505 timing_function.Pass()); | |
| 1506 | |
| 1507 if (anchor_point) { | |
| 1508 gfx::Vector2dF anchor(target_offset); | |
| 1509 page_scale_animation_->ZoomWithAnchor(anchor, | |
| 1510 page_scale, | |
| 1511 duration.InSecondsF()); | |
| 1512 } else { | |
| 1513 gfx::Vector2dF scaled_target_offset = target_offset; | |
| 1514 page_scale_animation_->ZoomTo(scaled_target_offset, | |
| 1515 page_scale, | |
| 1516 duration.InSecondsF()); | |
| 1517 } | |
| 1518 } | 1487 } |
| 1519 | 1488 |
| 1520 scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() { | 1489 scoped_ptr<PendingPageScaleAnimation> |
| 1521 return page_scale_animation_.Pass(); | 1490 LayerTreeImpl::TakePendingPageScaleAnimation() { |
| 1491 return pending_page_scale_animation_.Pass(); |
| 1522 } | 1492 } |
| 1523 | 1493 |
| 1524 } // namespace cc | 1494 } // namespace cc |
| OLD | NEW |