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 10 matching lines...) Expand all Loading... |
21 #include "cc/base/math_util.h" | 21 #include "cc/base/math_util.h" |
22 #include "cc/debug/devtools_instrumentation.h" | 22 #include "cc/debug/devtools_instrumentation.h" |
23 #include "cc/debug/rendering_stats_instrumentation.h" | 23 #include "cc/debug/rendering_stats_instrumentation.h" |
24 #include "cc/input/top_controls_manager.h" | 24 #include "cc/input/top_controls_manager.h" |
25 #include "cc/layers/heads_up_display_layer.h" | 25 #include "cc/layers/heads_up_display_layer.h" |
26 #include "cc/layers/heads_up_display_layer_impl.h" | 26 #include "cc/layers/heads_up_display_layer_impl.h" |
27 #include "cc/layers/layer.h" | 27 #include "cc/layers/layer.h" |
28 #include "cc/layers/layer_iterator.h" | 28 #include "cc/layers/layer_iterator.h" |
29 #include "cc/layers/painted_scrollbar_layer.h" | 29 #include "cc/layers/painted_scrollbar_layer.h" |
30 #include "cc/layers/render_surface.h" | 30 #include "cc/layers/render_surface.h" |
| 31 #include "cc/output/selection_handle.h" |
31 #include "cc/resources/prioritized_resource_manager.h" | 32 #include "cc/resources/prioritized_resource_manager.h" |
32 #include "cc/resources/ui_resource_request.h" | 33 #include "cc/resources/ui_resource_request.h" |
33 #include "cc/trees/layer_tree_host_client.h" | 34 #include "cc/trees/layer_tree_host_client.h" |
34 #include "cc/trees/layer_tree_host_common.h" | 35 #include "cc/trees/layer_tree_host_common.h" |
35 #include "cc/trees/layer_tree_host_impl.h" | 36 #include "cc/trees/layer_tree_host_impl.h" |
36 #include "cc/trees/layer_tree_impl.h" | 37 #include "cc/trees/layer_tree_impl.h" |
37 #include "cc/trees/occlusion_tracker.h" | 38 #include "cc/trees/occlusion_tracker.h" |
38 #include "cc/trees/single_thread_proxy.h" | 39 #include "cc/trees/single_thread_proxy.h" |
39 #include "cc/trees/thread_proxy.h" | 40 #include "cc/trees/thread_proxy.h" |
40 #include "cc/trees/tree_synchronizer.h" | 41 #include "cc/trees/tree_synchronizer.h" |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 if (page_scale_layer_ && inner_viewport_scroll_layer_) { | 322 if (page_scale_layer_ && inner_viewport_scroll_layer_) { |
322 sync_tree->SetViewportLayersFromIds( | 323 sync_tree->SetViewportLayersFromIds( |
323 page_scale_layer_->id(), | 324 page_scale_layer_->id(), |
324 inner_viewport_scroll_layer_->id(), | 325 inner_viewport_scroll_layer_->id(), |
325 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() | 326 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() |
326 : Layer::INVALID_ID); | 327 : Layer::INVALID_ID); |
327 } else { | 328 } else { |
328 sync_tree->ClearViewportLayers(); | 329 sync_tree->ClearViewportLayers(); |
329 } | 330 } |
330 | 331 |
| 332 sync_tree->RegisterSelection( |
| 333 start_selection_layer_ ? start_selection_layer_->id() : 0, |
| 334 start_selection_handle_, |
| 335 end_selection_layer_ ? end_selection_layer_->id() : 0, |
| 336 end_selection_handle_); |
| 337 |
331 float page_scale_delta, sent_page_scale_delta; | 338 float page_scale_delta, sent_page_scale_delta; |
332 if (settings_.impl_side_painting) { | 339 if (settings_.impl_side_painting) { |
333 // Update the delta from the active tree, which may have | 340 // Update the delta from the active tree, which may have |
334 // adjusted its delta prior to the pending tree being created. | 341 // adjusted its delta prior to the pending tree being created. |
335 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. | 342 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. |
336 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); | 343 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); |
337 page_scale_delta = host_impl->active_tree()->page_scale_delta(); | 344 page_scale_delta = host_impl->active_tree()->page_scale_delta(); |
338 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); | 345 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); |
339 } else { | 346 } else { |
340 page_scale_delta = sync_tree->page_scale_delta(); | 347 page_scale_delta = sync_tree->page_scale_delta(); |
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1239 | 1246 |
1240 void LayerTreeHost::RegisterViewportLayers( | 1247 void LayerTreeHost::RegisterViewportLayers( |
1241 scoped_refptr<Layer> page_scale_layer, | 1248 scoped_refptr<Layer> page_scale_layer, |
1242 scoped_refptr<Layer> inner_viewport_scroll_layer, | 1249 scoped_refptr<Layer> inner_viewport_scroll_layer, |
1243 scoped_refptr<Layer> outer_viewport_scroll_layer) { | 1250 scoped_refptr<Layer> outer_viewport_scroll_layer) { |
1244 page_scale_layer_ = page_scale_layer; | 1251 page_scale_layer_ = page_scale_layer; |
1245 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; | 1252 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; |
1246 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; | 1253 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; |
1247 } | 1254 } |
1248 | 1255 |
| 1256 void LayerTreeHost::RegisterSelection(scoped_refptr<Layer> start_layer, |
| 1257 const SelectionHandle& start_handle, |
| 1258 scoped_refptr<Layer> end_layer, |
| 1259 const SelectionHandle& end_handle) { |
| 1260 if (start_selection_layer_.get() == start_layer.get() && |
| 1261 end_selection_layer_.get() == end_layer.get() && |
| 1262 start_selection_handle_ == start_handle && |
| 1263 end_selection_handle_ == end_handle) |
| 1264 return; |
| 1265 |
| 1266 start_selection_layer_ = start_layer; |
| 1267 end_selection_layer_ = end_layer; |
| 1268 start_selection_handle_ = start_handle; |
| 1269 end_selection_handle_ = end_handle; |
| 1270 SetNeedsCommit(); |
| 1271 } |
| 1272 |
1249 int LayerTreeHost::ScheduleMicroBenchmark( | 1273 int LayerTreeHost::ScheduleMicroBenchmark( |
1250 const std::string& benchmark_name, | 1274 const std::string& benchmark_name, |
1251 scoped_ptr<base::Value> value, | 1275 scoped_ptr<base::Value> value, |
1252 const MicroBenchmark::DoneCallback& callback) { | 1276 const MicroBenchmark::DoneCallback& callback) { |
1253 return micro_benchmark_controller_.ScheduleRun( | 1277 return micro_benchmark_controller_.ScheduleRun( |
1254 benchmark_name, value.Pass(), callback); | 1278 benchmark_name, value.Pass(), callback); |
1255 } | 1279 } |
1256 | 1280 |
1257 bool LayerTreeHost::SendMessageToMicroBenchmark(int id, | 1281 bool LayerTreeHost::SendMessageToMicroBenchmark(int id, |
1258 scoped_ptr<base::Value> value) { | 1282 scoped_ptr<base::Value> value) { |
(...skipping 21 matching lines...) Expand all Loading... |
1280 swap_promise_list_.push_back(swap_promise.Pass()); | 1304 swap_promise_list_.push_back(swap_promise.Pass()); |
1281 } | 1305 } |
1282 | 1306 |
1283 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1307 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
1284 for (size_t i = 0; i < swap_promise_list_.size(); i++) | 1308 for (size_t i = 0; i < swap_promise_list_.size(); i++) |
1285 swap_promise_list_[i]->DidNotSwap(reason); | 1309 swap_promise_list_[i]->DidNotSwap(reason); |
1286 swap_promise_list_.clear(); | 1310 swap_promise_list_.clear(); |
1287 } | 1311 } |
1288 | 1312 |
1289 } // namespace cc | 1313 } // namespace cc |
OLD | NEW |