Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(512)

Side by Side Diff: cc/trees/layer_tree_impl.cc

Issue 800613009: Convert scroll offsets to use SyncedProperty. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 } 147 }
148 148
149 LayerImpl* LayerTreeImpl::OuterViewportScrollLayer() const { 149 LayerImpl* LayerTreeImpl::OuterViewportScrollLayer() const {
150 return outer_viewport_scroll_layer_; 150 return outer_viewport_scroll_layer_;
151 } 151 }
152 152
153 gfx::ScrollOffset LayerTreeImpl::TotalScrollOffset() const { 153 gfx::ScrollOffset LayerTreeImpl::TotalScrollOffset() const {
154 gfx::ScrollOffset offset; 154 gfx::ScrollOffset offset;
155 155
156 if (inner_viewport_scroll_layer_) 156 if (inner_viewport_scroll_layer_)
157 offset += inner_viewport_scroll_layer_->TotalScrollOffset(); 157 offset += inner_viewport_scroll_layer_->CurrentScrollOffset();
158 158
159 if (outer_viewport_scroll_layer_) 159 if (outer_viewport_scroll_layer_)
160 offset += outer_viewport_scroll_layer_->TotalScrollOffset(); 160 offset += outer_viewport_scroll_layer_->CurrentScrollOffset();
161 161
162 return offset; 162 return offset;
163 } 163 }
164 164
165 gfx::ScrollOffset LayerTreeImpl::TotalMaxScrollOffset() const { 165 gfx::ScrollOffset LayerTreeImpl::TotalMaxScrollOffset() const {
166 gfx::ScrollOffset offset; 166 gfx::ScrollOffset offset;
167 167
168 if (inner_viewport_scroll_layer_) 168 if (inner_viewport_scroll_layer_)
169 offset += inner_viewport_scroll_layer_->MaxScrollOffset(); 169 offset += inner_viewport_scroll_layer_->MaxScrollOffset();
170 170
171 if (outer_viewport_scroll_layer_) 171 if (outer_viewport_scroll_layer_)
172 offset += outer_viewport_scroll_layer_->MaxScrollOffset(); 172 offset += outer_viewport_scroll_layer_->MaxScrollOffset();
173 173
174 return offset; 174 return offset;
175 } 175 }
176 gfx::Vector2dF LayerTreeImpl::TotalScrollDelta() const {
177 DCHECK(inner_viewport_scroll_layer_);
178 gfx::Vector2dF delta = inner_viewport_scroll_layer_->ScrollDelta();
179
180 if (outer_viewport_scroll_layer_)
181 delta += outer_viewport_scroll_layer_->ScrollDelta();
182
183 return delta;
184 }
185 176
186 scoped_ptr<LayerImpl> LayerTreeImpl::DetachLayerTree() { 177 scoped_ptr<LayerImpl> LayerTreeImpl::DetachLayerTree() {
187 // Clear all data structures that have direct references to the layer tree. 178 // Clear all data structures that have direct references to the layer tree.
188 scrolling_layer_id_from_previous_tree_ = 179 scrolling_layer_id_from_previous_tree_ =
189 currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0; 180 currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0;
190 if (inner_viewport_scroll_layer_) 181 if (inner_viewport_scroll_layer_)
191 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 182 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL);
192 if (outer_viewport_scroll_layer_) 183 if (outer_viewport_scroll_layer_)
193 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 184 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL);
194 inner_viewport_scroll_delegate_proxy_ = nullptr; 185 inner_viewport_scroll_delegate_proxy_ = nullptr;
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 top_controls_delta_ -= sent_top_controls_delta_; 429 top_controls_delta_ -= sent_top_controls_delta_;
439 sent_top_controls_delta_ = 0.f; 430 sent_top_controls_delta_ = 0.f;
440 431
441 if (!root_layer()) 432 if (!root_layer())
442 return; 433 return;
443 434
444 LayerTreeHostCommon::CallFunctionForSubtree( 435 LayerTreeHostCommon::CallFunctionForSubtree(
445 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo)); 436 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo));
446 } 437 }
447 438
448 static void ApplyScrollDeltasSinceBeginMainFrameTo(LayerImpl* layer) {
449 layer->ApplyScrollDeltasSinceBeginMainFrame();
450 }
451
452 void LayerTreeImpl::ApplyScrollDeltasSinceBeginMainFrame() {
453 DCHECK(IsPendingTree());
454 if (!root_layer())
455 return;
456
457 LayerTreeHostCommon::CallFunctionForSubtree(
458 root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginMainFrameTo));
459 }
460
461 void LayerTreeImpl::SetViewportLayersFromIds( 439 void LayerTreeImpl::SetViewportLayersFromIds(
462 int overscroll_elasticity_layer_id, 440 int overscroll_elasticity_layer_id,
463 int page_scale_layer_id, 441 int page_scale_layer_id,
464 int inner_viewport_scroll_layer_id, 442 int inner_viewport_scroll_layer_id,
465 int outer_viewport_scroll_layer_id) { 443 int outer_viewport_scroll_layer_id) {
466 overscroll_elasticity_layer_ = LayerById(overscroll_elasticity_layer_id); 444 overscroll_elasticity_layer_ = LayerById(overscroll_elasticity_layer_id);
467 page_scale_layer_ = LayerById(page_scale_layer_id); 445 page_scale_layer_ = LayerById(page_scale_layer_id);
468 DCHECK(page_scale_layer_); 446 DCHECK(page_scale_layer_);
469 447
470 inner_viewport_scroll_layer_ = 448 inner_viewport_scroll_layer_ =
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 } 950 }
973 951
974 if (inner_viewport_scroll_layer_) 952 if (inner_viewport_scroll_layer_)
975 UpdateScrollOffsetDelegate(); 953 UpdateScrollOffsetDelegate();
976 } 954 }
977 } 955 }
978 956
979 void LayerTreeImpl::OnRootLayerDelegatedScrollOffsetChanged() { 957 void LayerTreeImpl::OnRootLayerDelegatedScrollOffsetChanged() {
980 DCHECK(root_layer_scroll_offset_delegate_); 958 DCHECK(root_layer_scroll_offset_delegate_);
981 if (inner_viewport_scroll_layer_) { 959 if (inner_viewport_scroll_layer_) {
982 inner_viewport_scroll_layer_->DidScroll(); 960 inner_viewport_scroll_layer_->RefreshScrollDelegate();
983 } 961 }
984 if (outer_viewport_scroll_layer_) { 962 if (outer_viewport_scroll_layer_) {
985 outer_viewport_scroll_layer_->DidScroll(); 963 outer_viewport_scroll_layer_->RefreshScrollDelegate();
986 } 964 }
987 } 965 }
988 966
989 void LayerTreeImpl::UpdateScrollOffsetDelegate() { 967 void LayerTreeImpl::UpdateScrollOffsetDelegate() {
990 DCHECK(InnerViewportScrollLayer()); 968 DCHECK(InnerViewportScrollLayer());
991 DCHECK(!OuterViewportScrollLayer() || outer_viewport_scroll_delegate_proxy_); 969 DCHECK(!OuterViewportScrollLayer() || outer_viewport_scroll_delegate_proxy_);
992 DCHECK(root_layer_scroll_offset_delegate_); 970 DCHECK(root_layer_scroll_offset_delegate_);
993 971
994 gfx::ScrollOffset offset = 972 gfx::ScrollOffset offset =
995 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset(); 973 inner_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1523 scoped_ptr<PendingPageScaleAnimation> pending_animation) { 1501 scoped_ptr<PendingPageScaleAnimation> pending_animation) {
1524 pending_page_scale_animation_ = pending_animation.Pass(); 1502 pending_page_scale_animation_ = pending_animation.Pass();
1525 } 1503 }
1526 1504
1527 scoped_ptr<PendingPageScaleAnimation> 1505 scoped_ptr<PendingPageScaleAnimation>
1528 LayerTreeImpl::TakePendingPageScaleAnimation() { 1506 LayerTreeImpl::TakePendingPageScaleAnimation() {
1529 return pending_page_scale_animation_.Pass(); 1507 return pending_page_scale_animation_.Pass();
1530 } 1508 }
1531 1509
1532 } // namespace cc 1510 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698