Chromium Code Reviews| 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 22 matching lines...) Expand all Loading... | |
| 33 #include "cc/resources/prioritized_resource_manager.h" | 33 #include "cc/resources/prioritized_resource_manager.h" |
| 34 #include "cc/resources/ui_resource_request.h" | 34 #include "cc/resources/ui_resource_request.h" |
| 35 #include "cc/trees/layer_tree_host_client.h" | 35 #include "cc/trees/layer_tree_host_client.h" |
| 36 #include "cc/trees/layer_tree_host_common.h" | 36 #include "cc/trees/layer_tree_host_common.h" |
| 37 #include "cc/trees/layer_tree_host_impl.h" | 37 #include "cc/trees/layer_tree_host_impl.h" |
| 38 #include "cc/trees/layer_tree_impl.h" | 38 #include "cc/trees/layer_tree_impl.h" |
| 39 #include "cc/trees/occlusion_tracker.h" | 39 #include "cc/trees/occlusion_tracker.h" |
| 40 #include "cc/trees/single_thread_proxy.h" | 40 #include "cc/trees/single_thread_proxy.h" |
| 41 #include "cc/trees/thread_proxy.h" | 41 #include "cc/trees/thread_proxy.h" |
| 42 #include "cc/trees/tree_synchronizer.h" | 42 #include "cc/trees/tree_synchronizer.h" |
| 43 #include "ui/gfx/geometry/vector2d_conversions.h" | |
| 43 #include "ui/gfx/size_conversions.h" | 44 #include "ui/gfx/size_conversions.h" |
| 44 | 45 |
| 45 namespace { | 46 namespace { |
| 46 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; | 47 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; |
| 47 } | 48 } |
| 48 | 49 |
| 49 namespace cc { | 50 namespace cc { |
| 50 | 51 |
| 51 RendererCapabilities::RendererCapabilities(ResourceFormat best_texture_format, | 52 RendererCapabilities::RendererCapabilities(ResourceFormat best_texture_format, |
| 52 bool allow_partial_texture_updates, | 53 bool allow_partial_texture_updates, |
| (...skipping 1006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1059 ScopedPtrVector<SwapPromise>::iterator it = info->swap_promises.begin(); | 1060 ScopedPtrVector<SwapPromise>::iterator it = info->swap_promises.begin(); |
| 1060 for (; it != info->swap_promises.end(); ++it) { | 1061 for (; it != info->swap_promises.end(); ++it) { |
| 1061 scoped_ptr<SwapPromise> swap_promise(info->swap_promises.take(it)); | 1062 scoped_ptr<SwapPromise> swap_promise(info->swap_promises.take(it)); |
| 1062 TRACE_EVENT_FLOW_STEP0("input", | 1063 TRACE_EVENT_FLOW_STEP0("input", |
| 1063 "LatencyInfo.Flow", | 1064 "LatencyInfo.Flow", |
| 1064 TRACE_ID_DONT_MANGLE(swap_promise->TraceId()), | 1065 TRACE_ID_DONT_MANGLE(swap_promise->TraceId()), |
| 1065 "Main thread scroll update"); | 1066 "Main thread scroll update"); |
| 1066 QueueSwapPromise(swap_promise.Pass()); | 1067 QueueSwapPromise(swap_promise.Pass()); |
| 1067 } | 1068 } |
| 1068 | 1069 |
| 1069 gfx::Vector2d inner_viewport_scroll_delta; | 1070 gfx::Vector2dF inner_viewport_scroll_delta; |
| 1070 gfx::Vector2d outer_viewport_scroll_delta; | 1071 gfx::Vector2dF outer_viewport_scroll_delta; |
| 1071 | 1072 |
| 1072 for (size_t i = 0; i < info->scrolls.size(); ++i) { | 1073 for (size_t i = 0; i < info->scrolls.size(); ++i) { |
| 1073 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( | 1074 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( |
| 1074 root_layer_.get(), info->scrolls[i].layer_id); | 1075 root_layer_.get(), info->scrolls[i].layer_id); |
| 1075 if (!layer) | 1076 if (!layer) |
| 1076 continue; | 1077 continue; |
| 1077 if (layer == outer_viewport_scroll_layer_.get()) { | 1078 if (layer == outer_viewport_scroll_layer_.get()) { |
| 1078 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1079 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
| 1079 } else if (layer == inner_viewport_scroll_layer_.get()) { | 1080 } else if (layer == inner_viewport_scroll_layer_.get()) { |
| 1080 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1081 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1100 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
| 1100 inner_viewport_scroll_layer_->scroll_offset() + | 1101 inner_viewport_scroll_layer_->scroll_offset() + |
| 1101 inner_viewport_scroll_delta); | 1102 inner_viewport_scroll_delta); |
| 1102 if (outer_viewport_scroll_layer_.get()) { | 1103 if (outer_viewport_scroll_layer_.get()) { |
| 1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1104 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
| 1104 outer_viewport_scroll_layer_->scroll_offset() + | 1105 outer_viewport_scroll_layer_->scroll_offset() + |
| 1105 outer_viewport_scroll_delta); | 1106 outer_viewport_scroll_delta); |
| 1106 } | 1107 } |
| 1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); | 1108 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); |
| 1108 | 1109 |
| 1110 // TODO(miletus@): make viewport delta Vector2DF. | |
|
danakj
2014/09/18 21:21:52
nit: no @, capital M
Yufeng Shen (Slow to review)
2014/09/18 22:47:55
Done.
| |
| 1111 gfx::Vector2d viewport_scroll_delta = gfx::ToFlooredVector2d( | |
| 1112 inner_viewport_scroll_delta + outer_viewport_scroll_delta); | |
| 1113 | |
| 1109 client_->ApplyViewportDeltas( | 1114 client_->ApplyViewportDeltas( |
| 1110 inner_viewport_scroll_delta + outer_viewport_scroll_delta, | 1115 viewport_scroll_delta, |
| 1111 info->page_scale_delta, | 1116 info->page_scale_delta, |
| 1112 info->top_controls_delta); | 1117 info->top_controls_delta); |
| 1113 } | 1118 } |
| 1114 } | 1119 } |
| 1115 | 1120 |
| 1116 void LayerTreeHost::StartRateLimiter() { | 1121 void LayerTreeHost::StartRateLimiter() { |
| 1117 if (inside_begin_main_frame_) | 1122 if (inside_begin_main_frame_) |
| 1118 return; | 1123 return; |
| 1119 | 1124 |
| 1120 if (!rate_limit_timer_.IsRunning()) { | 1125 if (!rate_limit_timer_.IsRunning()) { |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1317 swap_promise_list_.push_back(swap_promise.Pass()); | 1322 swap_promise_list_.push_back(swap_promise.Pass()); |
| 1318 } | 1323 } |
| 1319 | 1324 |
| 1320 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1325 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
| 1321 for (size_t i = 0; i < swap_promise_list_.size(); i++) | 1326 for (size_t i = 0; i < swap_promise_list_.size(); i++) |
| 1322 swap_promise_list_[i]->DidNotSwap(reason); | 1327 swap_promise_list_[i]->DidNotSwap(reason); |
| 1323 swap_promise_list_.clear(); | 1328 swap_promise_list_.clear(); |
| 1324 } | 1329 } |
| 1325 | 1330 |
| 1326 } // namespace cc | 1331 } // namespace cc |
| OLD | NEW |