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.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <stack> | 8 #include <stack> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1059 ScopedPtrVector<SwapPromise>::iterator it = info->swap_promises.begin(); | 1059 ScopedPtrVector<SwapPromise>::iterator it = info->swap_promises.begin(); |
1060 for (; it != info->swap_promises.end(); ++it) { | 1060 for (; it != info->swap_promises.end(); ++it) { |
1061 scoped_ptr<SwapPromise> swap_promise(info->swap_promises.take(it)); | 1061 scoped_ptr<SwapPromise> swap_promise(info->swap_promises.take(it)); |
1062 TRACE_EVENT_FLOW_STEP0("input", | 1062 TRACE_EVENT_FLOW_STEP0("input", |
1063 "LatencyInfo.Flow", | 1063 "LatencyInfo.Flow", |
1064 TRACE_ID_DONT_MANGLE(swap_promise->TraceId()), | 1064 TRACE_ID_DONT_MANGLE(swap_promise->TraceId()), |
1065 "Main thread scroll update"); | 1065 "Main thread scroll update"); |
1066 QueueSwapPromise(swap_promise.Pass()); | 1066 QueueSwapPromise(swap_promise.Pass()); |
1067 } | 1067 } |
1068 | 1068 |
1069 gfx::Vector2d inner_viewport_scroll_delta; | 1069 gfx::ScrollOffset inner_viewport_scroll_delta; |
danakj
2014/09/25 15:13:31
these are deltas (relative to an offset) not an of
Yufeng Shen (Slow to review)
2014/09/25 20:06:24
Done.
| |
1070 gfx::Vector2d outer_viewport_scroll_delta; | 1070 gfx::ScrollOffset outer_viewport_scroll_delta; |
1071 | 1071 |
1072 for (size_t i = 0; i < info->scrolls.size(); ++i) { | 1072 for (size_t i = 0; i < info->scrolls.size(); ++i) { |
1073 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( | 1073 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( |
1074 root_layer_.get(), info->scrolls[i].layer_id); | 1074 root_layer_.get(), info->scrolls[i].layer_id); |
1075 if (!layer) | 1075 if (!layer) |
1076 continue; | 1076 continue; |
1077 if (layer == outer_viewport_scroll_layer_.get()) { | 1077 if (layer == outer_viewport_scroll_layer_.get()) { |
1078 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1078 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
1079 } else if (layer == inner_viewport_scroll_layer_.get()) { | 1079 } else if (layer == inner_viewport_scroll_layer_.get()) { |
1080 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1080 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
(...skipping 18 matching lines...) Expand all Loading... | |
1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1100 inner_viewport_scroll_layer_->scroll_offset() + | 1100 inner_viewport_scroll_layer_->scroll_offset() + |
1101 inner_viewport_scroll_delta); | 1101 inner_viewport_scroll_delta); |
1102 if (outer_viewport_scroll_layer_.get()) { | 1102 if (outer_viewport_scroll_layer_.get()) { |
1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1104 outer_viewport_scroll_layer_->scroll_offset() + | 1104 outer_viewport_scroll_layer_->scroll_offset() + |
1105 outer_viewport_scroll_delta); | 1105 outer_viewport_scroll_delta); |
1106 } | 1106 } |
1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); | 1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); |
1108 | 1108 |
1109 client_->ApplyViewportDeltas( | 1109 // TODO(miletus): Make viewport delta ScrollOffset. |
danakj
2014/09/25 15:13:31
Do you think all deltas should be ScrollOffset typ
Yufeng Shen (Slow to review)
2014/09/25 20:06:24
delta changed to be vector2dF to be consistent.
| |
1110 inner_viewport_scroll_delta + outer_viewport_scroll_delta, | 1110 gfx::Vector2d viewport_scroll_delta = gfx::ToFlooredVector2d( |
1111 info->page_scale_delta, | 1111 inner_viewport_scroll_delta + outer_viewport_scroll_delta); |
1112 info->top_controls_delta); | 1112 |
1113 client_->ApplyViewportDeltas(viewport_scroll_delta, | |
1114 info->page_scale_delta, | |
1115 info->top_controls_delta); | |
1113 } | 1116 } |
1114 } | 1117 } |
1115 | 1118 |
1116 void LayerTreeHost::StartRateLimiter() { | 1119 void LayerTreeHost::StartRateLimiter() { |
1117 if (inside_begin_main_frame_) | 1120 if (inside_begin_main_frame_) |
1118 return; | 1121 return; |
1119 | 1122 |
1120 if (!rate_limit_timer_.IsRunning()) { | 1123 if (!rate_limit_timer_.IsRunning()) { |
1121 rate_limit_timer_.Start(FROM_HERE, | 1124 rate_limit_timer_.Start(FROM_HERE, |
1122 base::TimeDelta(), | 1125 base::TimeDelta(), |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1317 swap_promise_list_.push_back(swap_promise.Pass()); | 1320 swap_promise_list_.push_back(swap_promise.Pass()); |
1318 } | 1321 } |
1319 | 1322 |
1320 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1323 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
1321 for (size_t i = 0; i < swap_promise_list_.size(); i++) | 1324 for (size_t i = 0; i < swap_promise_list_.size(); i++) |
1322 swap_promise_list_[i]->DidNotSwap(reason); | 1325 swap_promise_list_[i]->DidNotSwap(reason); |
1323 swap_promise_list_.clear(); | 1326 swap_promise_list_.clear(); |
1324 } | 1327 } |
1325 | 1328 |
1326 } // namespace cc | 1329 } // namespace cc |
OLD | NEW |