| 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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 visible_(false), | 177 visible_(false), |
| 178 page_scale_factor_(1.f), | 178 page_scale_factor_(1.f), |
| 179 min_page_scale_factor_(1.f), | 179 min_page_scale_factor_(1.f), |
| 180 max_page_scale_factor_(1.f), | 180 max_page_scale_factor_(1.f), |
| 181 has_gpu_rasterization_trigger_(false), | 181 has_gpu_rasterization_trigger_(false), |
| 182 content_is_suitable_for_gpu_rasterization_(true), | 182 content_is_suitable_for_gpu_rasterization_(true), |
| 183 gpu_rasterization_histogram_recorded_(false), | 183 gpu_rasterization_histogram_recorded_(false), |
| 184 background_color_(SK_ColorWHITE), | 184 background_color_(SK_ColorWHITE), |
| 185 has_transparent_background_(false), | 185 has_transparent_background_(false), |
| 186 have_scroll_event_handlers_(false), | 186 have_scroll_event_handlers_(false), |
| 187 have_wheel_event_handlers_(false), | 187 event_listener_properties_(), |
| 188 did_complete_scale_animation_(false), | 188 did_complete_scale_animation_(false), |
| 189 in_paint_layer_contents_(false), | 189 in_paint_layer_contents_(false), |
| 190 id_(s_layer_tree_host_sequence_number.GetNext() + 1), | 190 id_(s_layer_tree_host_sequence_number.GetNext() + 1), |
| 191 next_commit_forces_redraw_(false), | 191 next_commit_forces_redraw_(false), |
| 192 shared_bitmap_manager_(params->shared_bitmap_manager), | 192 shared_bitmap_manager_(params->shared_bitmap_manager), |
| 193 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager), | 193 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager), |
| 194 task_graph_runner_(params->task_graph_runner), | 194 task_graph_runner_(params->task_graph_runner), |
| 195 surface_id_namespace_(0u), | 195 surface_id_namespace_(0u), |
| 196 next_surface_sequence_(1u) { | 196 next_surface_sequence_(1u) { |
| 197 DCHECK(task_graph_runner_); | 197 DCHECK(task_graph_runner_); |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree( | 387 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree( |
| 388 sync_tree->root_layer(), hud_layer_->id()); | 388 sync_tree->root_layer(), hud_layer_->id()); |
| 389 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); | 389 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); |
| 390 } else { | 390 } else { |
| 391 sync_tree->set_hud_layer(NULL); | 391 sync_tree->set_hud_layer(NULL); |
| 392 } | 392 } |
| 393 | 393 |
| 394 sync_tree->set_background_color(background_color_); | 394 sync_tree->set_background_color(background_color_); |
| 395 sync_tree->set_has_transparent_background(has_transparent_background_); | 395 sync_tree->set_has_transparent_background(has_transparent_background_); |
| 396 sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_); | 396 sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_); |
| 397 sync_tree->set_have_wheel_event_handlers(have_wheel_event_handlers_); | 397 sync_tree->set_event_listener_properties( |
| 398 EventListenerClass::kTouch, |
| 399 event_listener_properties(EventListenerClass::kTouch)); |
| 400 sync_tree->set_event_listener_properties( |
| 401 EventListenerClass::kMouseWheel, |
| 402 event_listener_properties(EventListenerClass::kMouseWheel)); |
| 398 | 403 |
| 399 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) { | 404 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) { |
| 400 sync_tree->SetViewportLayersFromIds( | 405 sync_tree->SetViewportLayersFromIds( |
| 401 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() | 406 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() |
| 402 : Layer::INVALID_ID, | 407 : Layer::INVALID_ID, |
| 403 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), | 408 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), |
| 404 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() | 409 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() |
| 405 : Layer::INVALID_ID); | 410 : Layer::INVALID_ID); |
| 406 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); | 411 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); |
| 407 } else { | 412 } else { |
| (...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 } | 1115 } |
| 1111 | 1116 |
| 1112 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { | 1117 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { |
| 1113 if (have_scroll_event_handlers_ == have_event_handlers) | 1118 if (have_scroll_event_handlers_ == have_event_handlers) |
| 1114 return; | 1119 return; |
| 1115 | 1120 |
| 1116 have_scroll_event_handlers_ = have_event_handlers; | 1121 have_scroll_event_handlers_ = have_event_handlers; |
| 1117 SetNeedsCommit(); | 1122 SetNeedsCommit(); |
| 1118 } | 1123 } |
| 1119 | 1124 |
| 1120 void LayerTreeHost::SetHaveWheelEventHandlers(bool have_event_handlers) { | 1125 void LayerTreeHost::SetEventListenerProperties(EventListenerClass event_class, |
| 1121 if (have_wheel_event_handlers_ == have_event_handlers) | 1126 uint32_t properties) { |
| 1127 const size_t index = static_cast<size_t>(event_class); |
| 1128 if (event_listener_properties_[index] == properties) |
| 1122 return; | 1129 return; |
| 1123 | 1130 |
| 1124 have_wheel_event_handlers_ = have_event_handlers; | 1131 event_listener_properties_[index] = properties; |
| 1125 SetNeedsCommit(); | 1132 SetNeedsCommit(); |
| 1126 } | 1133 } |
| 1127 | 1134 |
| 1128 int LayerTreeHost::ScheduleMicroBenchmark( | 1135 int LayerTreeHost::ScheduleMicroBenchmark( |
| 1129 const std::string& benchmark_name, | 1136 const std::string& benchmark_name, |
| 1130 scoped_ptr<base::Value> value, | 1137 scoped_ptr<base::Value> value, |
| 1131 const MicroBenchmark::DoneCallback& callback) { | 1138 const MicroBenchmark::DoneCallback& callback) { |
| 1132 return micro_benchmark_controller_.ScheduleRun(benchmark_name, | 1139 return micro_benchmark_controller_.ScheduleRun(benchmark_name, |
| 1133 std::move(value), callback); | 1140 std::move(value), callback); |
| 1134 } | 1141 } |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1444 proto->set_page_scale_factor(page_scale_factor_); | 1451 proto->set_page_scale_factor(page_scale_factor_); |
| 1445 proto->set_min_page_scale_factor(min_page_scale_factor_); | 1452 proto->set_min_page_scale_factor(min_page_scale_factor_); |
| 1446 proto->set_max_page_scale_factor(max_page_scale_factor_); | 1453 proto->set_max_page_scale_factor(max_page_scale_factor_); |
| 1447 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll()); | 1454 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll()); |
| 1448 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_); | 1455 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_); |
| 1449 proto->set_content_is_suitable_for_gpu_rasterization( | 1456 proto->set_content_is_suitable_for_gpu_rasterization( |
| 1450 content_is_suitable_for_gpu_rasterization_); | 1457 content_is_suitable_for_gpu_rasterization_); |
| 1451 proto->set_background_color(background_color_); | 1458 proto->set_background_color(background_color_); |
| 1452 proto->set_has_transparent_background(has_transparent_background_); | 1459 proto->set_has_transparent_background(has_transparent_background_); |
| 1453 proto->set_have_scroll_event_handlers(have_scroll_event_handlers_); | 1460 proto->set_have_scroll_event_handlers(have_scroll_event_handlers_); |
| 1454 proto->set_have_wheel_event_handlers(have_wheel_event_handlers_); | 1461 proto->set_wheel_event_listener_properties( |
| 1462 event_listener_properties(EventListenerClass::kMouseWheel)); |
| 1463 proto->set_touch_event_listener_properties( |
| 1464 event_listener_properties(EventListenerClass::kTouch)); |
| 1455 proto->set_in_paint_layer_contents(in_paint_layer_contents_); | 1465 proto->set_in_paint_layer_contents(in_paint_layer_contents_); |
| 1456 proto->set_id(id_); | 1466 proto->set_id(id_); |
| 1457 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_); | 1467 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_); |
| 1458 | 1468 |
| 1459 // Viewport layers. | 1469 // Viewport layers. |
| 1460 proto->set_overscroll_elasticity_layer_id( | 1470 proto->set_overscroll_elasticity_layer_id( |
| 1461 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() | 1471 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() |
| 1462 : Layer::INVALID_ID); | 1472 : Layer::INVALID_ID); |
| 1463 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id() | 1473 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id() |
| 1464 : Layer::INVALID_ID); | 1474 : Layer::INVALID_ID); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1510 page_scale_factor_ = proto.page_scale_factor(); | 1520 page_scale_factor_ = proto.page_scale_factor(); |
| 1511 min_page_scale_factor_ = proto.min_page_scale_factor(); | 1521 min_page_scale_factor_ = proto.min_page_scale_factor(); |
| 1512 max_page_scale_factor_ = proto.max_page_scale_factor(); | 1522 max_page_scale_factor_ = proto.max_page_scale_factor(); |
| 1513 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll()); | 1523 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll()); |
| 1514 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); | 1524 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); |
| 1515 content_is_suitable_for_gpu_rasterization_ = | 1525 content_is_suitable_for_gpu_rasterization_ = |
| 1516 proto.content_is_suitable_for_gpu_rasterization(); | 1526 proto.content_is_suitable_for_gpu_rasterization(); |
| 1517 background_color_ = proto.background_color(); | 1527 background_color_ = proto.background_color(); |
| 1518 has_transparent_background_ = proto.has_transparent_background(); | 1528 has_transparent_background_ = proto.has_transparent_background(); |
| 1519 have_scroll_event_handlers_ = proto.have_scroll_event_handlers(); | 1529 have_scroll_event_handlers_ = proto.have_scroll_event_handlers(); |
| 1520 have_wheel_event_handlers_ = proto.have_wheel_event_handlers(); | 1530 event_listener_properties_[static_cast<size_t>( |
| 1531 EventListenerClass::kMouseWheel)] = |
| 1532 proto.wheel_event_listener_properties(); |
| 1533 event_listener_properties_[static_cast<size_t>(EventListenerClass::kTouch)] = |
| 1534 proto.touch_event_listener_properties(); |
| 1521 in_paint_layer_contents_ = proto.in_paint_layer_contents(); | 1535 in_paint_layer_contents_ = proto.in_paint_layer_contents(); |
| 1522 id_ = proto.id(); | 1536 id_ = proto.id(); |
| 1523 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); | 1537 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); |
| 1524 | 1538 |
| 1525 hud_layer_ = static_cast<HeadsUpDisplayLayer*>( | 1539 hud_layer_ = static_cast<HeadsUpDisplayLayer*>( |
| 1526 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_)); | 1540 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_)); |
| 1527 overscroll_elasticity_layer_ = | 1541 overscroll_elasticity_layer_ = |
| 1528 UpdateAndGetLayer(overscroll_elasticity_layer_.get(), | 1542 UpdateAndGetLayer(overscroll_elasticity_layer_.get(), |
| 1529 proto.overscroll_elasticity_layer_id(), layer_id_map_); | 1543 proto.overscroll_elasticity_layer_id(), layer_id_map_); |
| 1530 page_scale_layer_ = UpdateAndGetLayer( | 1544 page_scale_layer_ = UpdateAndGetLayer( |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1551 LayerTreeHostCommon::CallFunctionForSubtree( | 1565 LayerTreeHostCommon::CallFunctionForSubtree( |
| 1552 root_layer(), [seq_num](Layer* layer) { | 1566 root_layer(), [seq_num](Layer* layer) { |
| 1553 layer->set_property_tree_sequence_number(seq_num); | 1567 layer->set_property_tree_sequence_number(seq_num); |
| 1554 }); | 1568 }); |
| 1555 | 1569 |
| 1556 surface_id_namespace_ = proto.surface_id_namespace(); | 1570 surface_id_namespace_ = proto.surface_id_namespace(); |
| 1557 next_surface_sequence_ = proto.next_surface_sequence(); | 1571 next_surface_sequence_ = proto.next_surface_sequence(); |
| 1558 } | 1572 } |
| 1559 | 1573 |
| 1560 } // namespace cc | 1574 } // namespace cc |
| OLD | NEW |