| 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_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 2935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2946 scroll_info->top_controls_delta = active_tree()->top_controls_delta(); | 2946 scroll_info->top_controls_delta = active_tree()->top_controls_delta(); |
| 2947 active_tree_->set_sent_top_controls_delta(scroll_info->top_controls_delta); | 2947 active_tree_->set_sent_top_controls_delta(scroll_info->top_controls_delta); |
| 2948 | 2948 |
| 2949 return scroll_info.Pass(); | 2949 return scroll_info.Pass(); |
| 2950 } | 2950 } |
| 2951 | 2951 |
| 2952 void LayerTreeHostImpl::SetFullRootLayerDamage() { | 2952 void LayerTreeHostImpl::SetFullRootLayerDamage() { |
| 2953 SetViewportDamage(gfx::Rect(DrawViewportSize())); | 2953 SetViewportDamage(gfx::Rect(DrawViewportSize())); |
| 2954 } | 2954 } |
| 2955 | 2955 |
| 2956 void LayerTreeHostImpl::ScrollViewportInnerFirst(gfx::Vector2dF scroll_delta) { |
| 2957 DCHECK(InnerViewportScrollLayer()); |
| 2958 LayerImpl* scroll_layer = InnerViewportScrollLayer(); |
| 2959 |
| 2960 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta); |
| 2961 if (!unused_delta.IsZero() && OuterViewportScrollLayer()) |
| 2962 OuterViewportScrollLayer()->ScrollBy(unused_delta); |
| 2963 } |
| 2964 |
| 2956 void LayerTreeHostImpl::ScrollViewportBy(gfx::Vector2dF scroll_delta) { | 2965 void LayerTreeHostImpl::ScrollViewportBy(gfx::Vector2dF scroll_delta) { |
| 2957 DCHECK(InnerViewportScrollLayer()); | 2966 DCHECK(InnerViewportScrollLayer()); |
| 2958 LayerImpl* scroll_layer = OuterViewportScrollLayer() | 2967 LayerImpl* scroll_layer = OuterViewportScrollLayer() |
| 2959 ? OuterViewportScrollLayer() | 2968 ? OuterViewportScrollLayer() |
| 2960 : InnerViewportScrollLayer(); | 2969 : InnerViewportScrollLayer(); |
| 2961 | 2970 |
| 2962 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta); | 2971 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta); |
| 2963 | 2972 |
| 2964 if (!unused_delta.IsZero() && (scroll_layer == OuterViewportScrollLayer())) | 2973 if (!unused_delta.IsZero() && (scroll_layer == OuterViewportScrollLayer())) |
| 2965 InnerViewportScrollLayer()->ScrollBy(unused_delta); | 2974 InnerViewportScrollLayer()->ScrollBy(unused_delta); |
| 2966 } | 2975 } |
| 2967 | 2976 |
| 2968 void LayerTreeHostImpl::AnimatePageScale(base::TimeTicks monotonic_time) { | 2977 void LayerTreeHostImpl::AnimatePageScale(base::TimeTicks monotonic_time) { |
| 2969 if (!page_scale_animation_) | 2978 if (!page_scale_animation_) |
| 2970 return; | 2979 return; |
| 2971 | 2980 |
| 2972 gfx::Vector2dF scroll_total = active_tree_->TotalScrollOffset(); | 2981 gfx::Vector2dF scroll_total = active_tree_->TotalScrollOffset(); |
| 2973 | 2982 |
| 2974 if (!page_scale_animation_->IsAnimationStarted()) | 2983 if (!page_scale_animation_->IsAnimationStarted()) |
| 2975 page_scale_animation_->StartAnimation(monotonic_time); | 2984 page_scale_animation_->StartAnimation(monotonic_time); |
| 2976 | 2985 |
| 2977 active_tree_->SetPageScaleDelta( | 2986 active_tree_->SetPageScaleDelta( |
| 2978 page_scale_animation_->PageScaleFactorAtTime(monotonic_time) / | 2987 page_scale_animation_->PageScaleFactorAtTime(monotonic_time) / |
| 2979 active_tree_->page_scale_factor()); | 2988 active_tree_->page_scale_factor()); |
| 2980 gfx::Vector2dF next_scroll = | 2989 gfx::Vector2dF next_scroll = |
| 2981 page_scale_animation_->ScrollOffsetAtTime(monotonic_time); | 2990 page_scale_animation_->ScrollOffsetAtTime(monotonic_time); |
| 2982 | 2991 |
| 2983 ScrollViewportBy(next_scroll - scroll_total); | 2992 ScrollViewportInnerFirst(next_scroll - scroll_total); |
| 2984 SetNeedsRedraw(); | 2993 SetNeedsRedraw(); |
| 2985 | 2994 |
| 2986 if (page_scale_animation_->IsAnimationCompleteAtTime(monotonic_time)) { | 2995 if (page_scale_animation_->IsAnimationCompleteAtTime(monotonic_time)) { |
| 2987 page_scale_animation_.reset(); | 2996 page_scale_animation_.reset(); |
| 2988 client_->SetNeedsCommitOnImplThread(); | 2997 client_->SetNeedsCommitOnImplThread(); |
| 2989 client_->RenewTreePriority(); | 2998 client_->RenewTreePriority(); |
| 2990 } else { | 2999 } else { |
| 2991 SetNeedsAnimate(); | 3000 SetNeedsAnimate(); |
| 2992 } | 3001 } |
| 2993 } | 3002 } |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3383 } | 3392 } |
| 3384 | 3393 |
| 3385 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3394 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
| 3386 std::vector<PictureLayerImpl*>::iterator it = | 3395 std::vector<PictureLayerImpl*>::iterator it = |
| 3387 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3396 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
| 3388 DCHECK(it != picture_layers_.end()); | 3397 DCHECK(it != picture_layers_.end()); |
| 3389 picture_layers_.erase(it); | 3398 picture_layers_.erase(it); |
| 3390 } | 3399 } |
| 3391 | 3400 |
| 3392 } // namespace cc | 3401 } // namespace cc |
| OLD | NEW |