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 <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 painted_device_scale_factor_(1.f), | 135 painted_device_scale_factor_(1.f), |
136 visible_(false), | 136 visible_(false), |
137 page_scale_factor_(1.f), | 137 page_scale_factor_(1.f), |
138 min_page_scale_factor_(1.f), | 138 min_page_scale_factor_(1.f), |
139 max_page_scale_factor_(1.f), | 139 max_page_scale_factor_(1.f), |
140 has_gpu_rasterization_trigger_(false), | 140 has_gpu_rasterization_trigger_(false), |
141 content_is_suitable_for_gpu_rasterization_(true), | 141 content_is_suitable_for_gpu_rasterization_(true), |
142 gpu_rasterization_histogram_recorded_(false), | 142 gpu_rasterization_histogram_recorded_(false), |
143 background_color_(SK_ColorWHITE), | 143 background_color_(SK_ColorWHITE), |
144 has_transparent_background_(false), | 144 has_transparent_background_(false), |
| 145 have_scroll_event_handlers_(false), |
145 have_wheel_event_handlers_(false), | 146 have_wheel_event_handlers_(false), |
146 did_complete_scale_animation_(false), | 147 did_complete_scale_animation_(false), |
147 in_paint_layer_contents_(false), | 148 in_paint_layer_contents_(false), |
148 id_(s_layer_tree_host_sequence_number.GetNext() + 1), | 149 id_(s_layer_tree_host_sequence_number.GetNext() + 1), |
149 next_commit_forces_redraw_(false), | 150 next_commit_forces_redraw_(false), |
150 shared_bitmap_manager_(params->shared_bitmap_manager), | 151 shared_bitmap_manager_(params->shared_bitmap_manager), |
151 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager), | 152 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager), |
152 task_graph_runner_(params->task_graph_runner), | 153 task_graph_runner_(params->task_graph_runner), |
153 surface_id_namespace_(0u), | 154 surface_id_namespace_(0u), |
154 next_surface_sequence_(1u) { | 155 next_surface_sequence_(1u) { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 if (hud_layer_.get()) { | 316 if (hud_layer_.get()) { |
316 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree( | 317 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree( |
317 sync_tree->root_layer(), hud_layer_->id()); | 318 sync_tree->root_layer(), hud_layer_->id()); |
318 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); | 319 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); |
319 } else { | 320 } else { |
320 sync_tree->set_hud_layer(NULL); | 321 sync_tree->set_hud_layer(NULL); |
321 } | 322 } |
322 | 323 |
323 sync_tree->set_background_color(background_color_); | 324 sync_tree->set_background_color(background_color_); |
324 sync_tree->set_has_transparent_background(has_transparent_background_); | 325 sync_tree->set_has_transparent_background(has_transparent_background_); |
| 326 sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_); |
325 sync_tree->set_have_wheel_event_handlers(have_wheel_event_handlers_); | 327 sync_tree->set_have_wheel_event_handlers(have_wheel_event_handlers_); |
326 | 328 |
327 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) { | 329 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) { |
328 sync_tree->SetViewportLayersFromIds( | 330 sync_tree->SetViewportLayersFromIds( |
329 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() | 331 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() |
330 : Layer::INVALID_ID, | 332 : Layer::INVALID_ID, |
331 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), | 333 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), |
332 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() | 334 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() |
333 : Layer::INVALID_ID); | 335 : Layer::INVALID_ID); |
334 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); | 336 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); |
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1029 } | 1031 } |
1030 | 1032 |
1031 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { | 1033 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { |
1032 if (selection_ == selection) | 1034 if (selection_ == selection) |
1033 return; | 1035 return; |
1034 | 1036 |
1035 selection_ = selection; | 1037 selection_ = selection; |
1036 SetNeedsCommit(); | 1038 SetNeedsCommit(); |
1037 } | 1039 } |
1038 | 1040 |
| 1041 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { |
| 1042 if (have_scroll_event_handlers_ == have_event_handlers) |
| 1043 return; |
| 1044 |
| 1045 have_scroll_event_handlers_ = have_event_handlers; |
| 1046 SetNeedsCommit(); |
| 1047 } |
| 1048 |
1039 void LayerTreeHost::SetHaveWheelEventHandlers(bool have_event_handlers) { | 1049 void LayerTreeHost::SetHaveWheelEventHandlers(bool have_event_handlers) { |
1040 if (have_wheel_event_handlers_ == have_event_handlers) | 1050 if (have_wheel_event_handlers_ == have_event_handlers) |
1041 return; | 1051 return; |
1042 | 1052 |
1043 have_wheel_event_handlers_ = have_event_handlers; | 1053 have_wheel_event_handlers_ = have_event_handlers; |
1044 SetNeedsCommit(); | 1054 SetNeedsCommit(); |
1045 } | 1055 } |
1046 | 1056 |
1047 int LayerTreeHost::ScheduleMicroBenchmark( | 1057 int LayerTreeHost::ScheduleMicroBenchmark( |
1048 const std::string& benchmark_name, | 1058 const std::string& benchmark_name, |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1351 proto->set_painted_device_scale_factor(painted_device_scale_factor_); | 1361 proto->set_painted_device_scale_factor(painted_device_scale_factor_); |
1352 proto->set_page_scale_factor(page_scale_factor_); | 1362 proto->set_page_scale_factor(page_scale_factor_); |
1353 proto->set_min_page_scale_factor(min_page_scale_factor_); | 1363 proto->set_min_page_scale_factor(min_page_scale_factor_); |
1354 proto->set_max_page_scale_factor(max_page_scale_factor_); | 1364 proto->set_max_page_scale_factor(max_page_scale_factor_); |
1355 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll()); | 1365 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll()); |
1356 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_); | 1366 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_); |
1357 proto->set_content_is_suitable_for_gpu_rasterization( | 1367 proto->set_content_is_suitable_for_gpu_rasterization( |
1358 content_is_suitable_for_gpu_rasterization_); | 1368 content_is_suitable_for_gpu_rasterization_); |
1359 proto->set_background_color(background_color_); | 1369 proto->set_background_color(background_color_); |
1360 proto->set_has_transparent_background(has_transparent_background_); | 1370 proto->set_has_transparent_background(has_transparent_background_); |
| 1371 proto->set_have_scroll_event_handlers(have_scroll_event_handlers_); |
1361 proto->set_have_wheel_event_handlers(have_wheel_event_handlers_); | 1372 proto->set_have_wheel_event_handlers(have_wheel_event_handlers_); |
1362 proto->set_in_paint_layer_contents(in_paint_layer_contents_); | 1373 proto->set_in_paint_layer_contents(in_paint_layer_contents_); |
1363 proto->set_id(id_); | 1374 proto->set_id(id_); |
1364 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_); | 1375 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_); |
1365 | 1376 |
1366 // Viewport layers. | 1377 // Viewport layers. |
1367 proto->set_overscroll_elasticity_layer_id( | 1378 proto->set_overscroll_elasticity_layer_id( |
1368 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() | 1379 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() |
1369 : Layer::INVALID_ID); | 1380 : Layer::INVALID_ID); |
1370 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id() | 1381 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id() |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1416 painted_device_scale_factor_ = proto.painted_device_scale_factor(); | 1427 painted_device_scale_factor_ = proto.painted_device_scale_factor(); |
1417 page_scale_factor_ = proto.page_scale_factor(); | 1428 page_scale_factor_ = proto.page_scale_factor(); |
1418 min_page_scale_factor_ = proto.min_page_scale_factor(); | 1429 min_page_scale_factor_ = proto.min_page_scale_factor(); |
1419 max_page_scale_factor_ = proto.max_page_scale_factor(); | 1430 max_page_scale_factor_ = proto.max_page_scale_factor(); |
1420 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll()); | 1431 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll()); |
1421 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); | 1432 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); |
1422 content_is_suitable_for_gpu_rasterization_ = | 1433 content_is_suitable_for_gpu_rasterization_ = |
1423 proto.content_is_suitable_for_gpu_rasterization(); | 1434 proto.content_is_suitable_for_gpu_rasterization(); |
1424 background_color_ = proto.background_color(); | 1435 background_color_ = proto.background_color(); |
1425 has_transparent_background_ = proto.has_transparent_background(); | 1436 has_transparent_background_ = proto.has_transparent_background(); |
| 1437 have_scroll_event_handlers_ = proto.have_scroll_event_handlers(); |
1426 have_wheel_event_handlers_ = proto.have_wheel_event_handlers(); | 1438 have_wheel_event_handlers_ = proto.have_wheel_event_handlers(); |
1427 in_paint_layer_contents_ = proto.in_paint_layer_contents(); | 1439 in_paint_layer_contents_ = proto.in_paint_layer_contents(); |
1428 id_ = proto.id(); | 1440 id_ = proto.id(); |
1429 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); | 1441 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); |
1430 | 1442 |
1431 hud_layer_ = static_cast<HeadsUpDisplayLayer*>( | 1443 hud_layer_ = static_cast<HeadsUpDisplayLayer*>( |
1432 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_)); | 1444 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_)); |
1433 overscroll_elasticity_layer_ = | 1445 overscroll_elasticity_layer_ = |
1434 UpdateAndGetLayer(overscroll_elasticity_layer_.get(), | 1446 UpdateAndGetLayer(overscroll_elasticity_layer_.get(), |
1435 proto.overscroll_elasticity_layer_id(), layer_id_map_); | 1447 proto.overscroll_elasticity_layer_id(), layer_id_map_); |
(...skipping 21 matching lines...) Expand all Loading... |
1457 LayerTreeHostCommon::CallFunctionForSubtree( | 1469 LayerTreeHostCommon::CallFunctionForSubtree( |
1458 root_layer(), [seq_num](Layer* layer) { | 1470 root_layer(), [seq_num](Layer* layer) { |
1459 layer->set_property_tree_sequence_number(seq_num); | 1471 layer->set_property_tree_sequence_number(seq_num); |
1460 }); | 1472 }); |
1461 | 1473 |
1462 surface_id_namespace_ = proto.surface_id_namespace(); | 1474 surface_id_namespace_ = proto.surface_id_namespace(); |
1463 next_surface_sequence_ = proto.next_surface_sequence(); | 1475 next_surface_sequence_ = proto.next_surface_sequence(); |
1464 } | 1476 } |
1465 | 1477 |
1466 } // namespace cc | 1478 } // namespace cc |
OLD | NEW |