| 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 |