| 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 } | 74 } |
| 75 | 75 |
| 76 auto layer_it = layer_id_map.find(layer_id); | 76 auto layer_it = layer_id_map.find(layer_id); |
| 77 DCHECK(layer_it != layer_id_map.end()); | 77 DCHECK(layer_it != layer_id_map.end()); |
| 78 if (current_layer && current_layer != layer_it->second) | 78 if (current_layer && current_layer != layer_it->second) |
| 79 current_layer->SetLayerTreeHost(nullptr); | 79 current_layer->SetLayerTreeHost(nullptr); |
| 80 | 80 |
| 81 return layer_it->second; | 81 return layer_it->second; |
| 82 } | 82 } |
| 83 | 83 |
| 84 scoped_ptr<base::trace_event::TracedValue> | 84 std::unique_ptr<base::trace_event::TracedValue> |
| 85 ComputeLayerTreeHostProtoSizeSplitAsValue(proto::LayerTreeHost* proto) { | 85 ComputeLayerTreeHostProtoSizeSplitAsValue(proto::LayerTreeHost* proto) { |
| 86 scoped_ptr<base::trace_event::TracedValue> value( | 86 std::unique_ptr<base::trace_event::TracedValue> value( |
| 87 new base::trace_event::TracedValue()); | 87 new base::trace_event::TracedValue()); |
| 88 base::CheckedNumeric<int> base_layer_properties_size = 0; | 88 base::CheckedNumeric<int> base_layer_properties_size = 0; |
| 89 base::CheckedNumeric<int> picture_layer_properties_size = 0; | 89 base::CheckedNumeric<int> picture_layer_properties_size = 0; |
| 90 base::CheckedNumeric<int> display_item_list_size = 0; | 90 base::CheckedNumeric<int> display_item_list_size = 0; |
| 91 base::CheckedNumeric<int> drawing_display_items_size = 0; | 91 base::CheckedNumeric<int> drawing_display_items_size = 0; |
| 92 | 92 |
| 93 const proto::LayerUpdate& layer_update_proto = proto->layer_updates(); | 93 const proto::LayerUpdate& layer_update_proto = proto->layer_updates(); |
| 94 for (int i = 0; i < layer_update_proto.layers_size(); ++i) { | 94 for (int i = 0; i < layer_update_proto.layers_size(); ++i) { |
| 95 const proto::LayerProperties layer_properties_proto = | 95 const proto::LayerProperties layer_properties_proto = |
| 96 layer_update_proto.layers(i); | 96 layer_update_proto.layers(i); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 } | 133 } |
| 134 | 134 |
| 135 } // namespace | 135 } // namespace |
| 136 | 136 |
| 137 LayerTreeHost::InitParams::InitParams() { | 137 LayerTreeHost::InitParams::InitParams() { |
| 138 } | 138 } |
| 139 | 139 |
| 140 LayerTreeHost::InitParams::~InitParams() { | 140 LayerTreeHost::InitParams::~InitParams() { |
| 141 } | 141 } |
| 142 | 142 |
| 143 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( | 143 std::unique_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( |
| 144 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 144 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 145 InitParams* params) { | 145 InitParams* params) { |
| 146 DCHECK(params->main_task_runner.get()); | 146 DCHECK(params->main_task_runner.get()); |
| 147 DCHECK(impl_task_runner.get()); | 147 DCHECK(impl_task_runner.get()); |
| 148 DCHECK(params->settings); | 148 DCHECK(params->settings); |
| 149 scoped_ptr<LayerTreeHost> layer_tree_host( | 149 std::unique_ptr<LayerTreeHost> layer_tree_host( |
| 150 new LayerTreeHost(params, CompositorMode::THREADED)); | 150 new LayerTreeHost(params, CompositorMode::THREADED)); |
| 151 layer_tree_host->InitializeThreaded( | 151 layer_tree_host->InitializeThreaded( |
| 152 params->main_task_runner, impl_task_runner, | 152 params->main_task_runner, impl_task_runner, |
| 153 std::move(params->external_begin_frame_source)); | 153 std::move(params->external_begin_frame_source)); |
| 154 return layer_tree_host; | 154 return layer_tree_host; |
| 155 } | 155 } |
| 156 | 156 |
| 157 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( | 157 std::unique_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( |
| 158 LayerTreeHostSingleThreadClient* single_thread_client, | 158 LayerTreeHostSingleThreadClient* single_thread_client, |
| 159 InitParams* params) { | 159 InitParams* params) { |
| 160 DCHECK(params->settings); | 160 DCHECK(params->settings); |
| 161 scoped_ptr<LayerTreeHost> layer_tree_host( | 161 std::unique_ptr<LayerTreeHost> layer_tree_host( |
| 162 new LayerTreeHost(params, CompositorMode::SINGLE_THREADED)); | 162 new LayerTreeHost(params, CompositorMode::SINGLE_THREADED)); |
| 163 layer_tree_host->InitializeSingleThreaded( | 163 layer_tree_host->InitializeSingleThreaded( |
| 164 single_thread_client, params->main_task_runner, | 164 single_thread_client, params->main_task_runner, |
| 165 std::move(params->external_begin_frame_source)); | 165 std::move(params->external_begin_frame_source)); |
| 166 return layer_tree_host; | 166 return layer_tree_host; |
| 167 } | 167 } |
| 168 | 168 |
| 169 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateRemoteServer( | 169 std::unique_ptr<LayerTreeHost> LayerTreeHost::CreateRemoteServer( |
| 170 RemoteProtoChannel* remote_proto_channel, | 170 RemoteProtoChannel* remote_proto_channel, |
| 171 InitParams* params) { | 171 InitParams* params) { |
| 172 DCHECK(params->main_task_runner.get()); | 172 DCHECK(params->main_task_runner.get()); |
| 173 DCHECK(params->settings); | 173 DCHECK(params->settings); |
| 174 DCHECK(remote_proto_channel); | 174 DCHECK(remote_proto_channel); |
| 175 | 175 |
| 176 // Using an external begin frame source is not supported on the server in | 176 // Using an external begin frame source is not supported on the server in |
| 177 // remote mode. | 177 // remote mode. |
| 178 DCHECK(!params->settings->use_external_begin_frame_source); | 178 DCHECK(!params->settings->use_external_begin_frame_source); |
| 179 DCHECK(!params->external_begin_frame_source); | 179 DCHECK(!params->external_begin_frame_source); |
| 180 DCHECK(params->image_serialization_processor); | 180 DCHECK(params->image_serialization_processor); |
| 181 | 181 |
| 182 scoped_ptr<LayerTreeHost> layer_tree_host( | 182 std::unique_ptr<LayerTreeHost> layer_tree_host( |
| 183 new LayerTreeHost(params, CompositorMode::REMOTE)); | 183 new LayerTreeHost(params, CompositorMode::REMOTE)); |
| 184 layer_tree_host->InitializeRemoteServer(remote_proto_channel, | 184 layer_tree_host->InitializeRemoteServer(remote_proto_channel, |
| 185 params->main_task_runner); | 185 params->main_task_runner); |
| 186 return layer_tree_host; | 186 return layer_tree_host; |
| 187 } | 187 } |
| 188 | 188 |
| 189 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateRemoteClient( | 189 std::unique_ptr<LayerTreeHost> LayerTreeHost::CreateRemoteClient( |
| 190 RemoteProtoChannel* remote_proto_channel, | 190 RemoteProtoChannel* remote_proto_channel, |
| 191 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 191 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 192 InitParams* params) { | 192 InitParams* params) { |
| 193 DCHECK(params->main_task_runner.get()); | 193 DCHECK(params->main_task_runner.get()); |
| 194 DCHECK(params->settings); | 194 DCHECK(params->settings); |
| 195 DCHECK(remote_proto_channel); | 195 DCHECK(remote_proto_channel); |
| 196 | 196 |
| 197 // Using an external begin frame source is not supported in remote mode. | 197 // Using an external begin frame source is not supported in remote mode. |
| 198 // TODO(khushalsagar): Add support for providing an external begin frame | 198 // TODO(khushalsagar): Add support for providing an external begin frame |
| 199 // source on the client LayerTreeHost. crbug/576962 | 199 // source on the client LayerTreeHost. crbug/576962 |
| 200 DCHECK(!params->settings->use_external_begin_frame_source); | 200 DCHECK(!params->settings->use_external_begin_frame_source); |
| 201 DCHECK(!params->external_begin_frame_source); | 201 DCHECK(!params->external_begin_frame_source); |
| 202 DCHECK(params->image_serialization_processor); | 202 DCHECK(params->image_serialization_processor); |
| 203 | 203 |
| 204 scoped_ptr<LayerTreeHost> layer_tree_host( | 204 std::unique_ptr<LayerTreeHost> layer_tree_host( |
| 205 new LayerTreeHost(params, CompositorMode::REMOTE)); | 205 new LayerTreeHost(params, CompositorMode::REMOTE)); |
| 206 layer_tree_host->InitializeRemoteClient( | 206 layer_tree_host->InitializeRemoteClient( |
| 207 remote_proto_channel, params->main_task_runner, impl_task_runner); | 207 remote_proto_channel, params->main_task_runner, impl_task_runner); |
| 208 return layer_tree_host; | 208 return layer_tree_host; |
| 209 } | 209 } |
| 210 | 210 |
| 211 LayerTreeHost::LayerTreeHost(InitParams* params, CompositorMode mode) | 211 LayerTreeHost::LayerTreeHost(InitParams* params, CompositorMode mode) |
| 212 : micro_benchmark_controller_(this), | 212 : micro_benchmark_controller_(this), |
| 213 next_ui_resource_id_(1), | 213 next_ui_resource_id_(1), |
| 214 compositor_mode_(mode), | 214 compositor_mode_(mode), |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 animation_host_ = AnimationHost::Create(ThreadInstance::MAIN); | 252 animation_host_ = AnimationHost::Create(ThreadInstance::MAIN); |
| 253 animation_host_->SetMutatorHostClient(this); | 253 animation_host_->SetMutatorHostClient(this); |
| 254 | 254 |
| 255 rendering_stats_instrumentation_->set_record_rendering_stats( | 255 rendering_stats_instrumentation_->set_record_rendering_stats( |
| 256 debug_state_.RecordRenderingStats()); | 256 debug_state_.RecordRenderingStats()); |
| 257 } | 257 } |
| 258 | 258 |
| 259 void LayerTreeHost::InitializeThreaded( | 259 void LayerTreeHost::InitializeThreaded( |
| 260 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 260 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 261 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 261 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 262 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 262 std::unique_ptr<BeginFrameSource> external_begin_frame_source) { |
| 263 task_runner_provider_ = | 263 task_runner_provider_ = |
| 264 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); | 264 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); |
| 265 scoped_ptr<ProxyMain> proxy_main = | 265 std::unique_ptr<ProxyMain> proxy_main = |
| 266 ProxyMain::CreateThreaded(this, task_runner_provider_.get()); | 266 ProxyMain::CreateThreaded(this, task_runner_provider_.get()); |
| 267 InitializeProxy(std::move(proxy_main), | 267 InitializeProxy(std::move(proxy_main), |
| 268 std::move(external_begin_frame_source)); | 268 std::move(external_begin_frame_source)); |
| 269 } | 269 } |
| 270 | 270 |
| 271 void LayerTreeHost::InitializeSingleThreaded( | 271 void LayerTreeHost::InitializeSingleThreaded( |
| 272 LayerTreeHostSingleThreadClient* single_thread_client, | 272 LayerTreeHostSingleThreadClient* single_thread_client, |
| 273 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 273 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 274 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 274 std::unique_ptr<BeginFrameSource> external_begin_frame_source) { |
| 275 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr); | 275 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr); |
| 276 InitializeProxy(SingleThreadProxy::Create(this, single_thread_client, | 276 InitializeProxy(SingleThreadProxy::Create(this, single_thread_client, |
| 277 task_runner_provider_.get()), | 277 task_runner_provider_.get()), |
| 278 std::move(external_begin_frame_source)); | 278 std::move(external_begin_frame_source)); |
| 279 } | 279 } |
| 280 | 280 |
| 281 void LayerTreeHost::InitializeRemoteServer( | 281 void LayerTreeHost::InitializeRemoteServer( |
| 282 RemoteProtoChannel* remote_proto_channel, | 282 RemoteProtoChannel* remote_proto_channel, |
| 283 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) { | 283 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) { |
| 284 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr); | 284 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 306 // to handled locally, for instance the Output Surface creation to the | 306 // to handled locally, for instance the Output Surface creation to the |
| 307 // LayerTreeHost on the client, while the other requests are sent to the | 307 // LayerTreeHost on the client, while the other requests are sent to the |
| 308 // RemoteChannelMain on the server which directs them to ProxyMain and the | 308 // RemoteChannelMain on the server which directs them to ProxyMain and the |
| 309 // remote server LayerTreeHost. | 309 // remote server LayerTreeHost. |
| 310 InitializeProxy(RemoteChannelImpl::Create(this, remote_proto_channel, | 310 InitializeProxy(RemoteChannelImpl::Create(this, remote_proto_channel, |
| 311 task_runner_provider_.get()), | 311 task_runner_provider_.get()), |
| 312 nullptr); | 312 nullptr); |
| 313 } | 313 } |
| 314 | 314 |
| 315 void LayerTreeHost::InitializeForTesting( | 315 void LayerTreeHost::InitializeForTesting( |
| 316 scoped_ptr<TaskRunnerProvider> task_runner_provider, | 316 std::unique_ptr<TaskRunnerProvider> task_runner_provider, |
| 317 scoped_ptr<Proxy> proxy_for_testing, | 317 std::unique_ptr<Proxy> proxy_for_testing, |
| 318 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 318 std::unique_ptr<BeginFrameSource> external_begin_frame_source) { |
| 319 task_runner_provider_ = std::move(task_runner_provider); | 319 task_runner_provider_ = std::move(task_runner_provider); |
| 320 InitializeProxy(std::move(proxy_for_testing), | 320 InitializeProxy(std::move(proxy_for_testing), |
| 321 std::move(external_begin_frame_source)); | 321 std::move(external_begin_frame_source)); |
| 322 } | 322 } |
| 323 | 323 |
| 324 void LayerTreeHost::SetTaskRunnerProviderForTesting( | 324 void LayerTreeHost::SetTaskRunnerProviderForTesting( |
| 325 scoped_ptr<TaskRunnerProvider> task_runner_provider) { | 325 std::unique_ptr<TaskRunnerProvider> task_runner_provider) { |
| 326 DCHECK(!task_runner_provider_); | 326 DCHECK(!task_runner_provider_); |
| 327 task_runner_provider_ = std::move(task_runner_provider); | 327 task_runner_provider_ = std::move(task_runner_provider); |
| 328 } | 328 } |
| 329 | 329 |
| 330 void LayerTreeHost::InitializeProxy( | 330 void LayerTreeHost::InitializeProxy( |
| 331 scoped_ptr<Proxy> proxy, | 331 std::unique_ptr<Proxy> proxy, |
| 332 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 332 std::unique_ptr<BeginFrameSource> external_begin_frame_source) { |
| 333 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); | 333 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); |
| 334 DCHECK(task_runner_provider_); | 334 DCHECK(task_runner_provider_); |
| 335 | 335 |
| 336 proxy_ = std::move(proxy); | 336 proxy_ = std::move(proxy); |
| 337 proxy_->Start(std::move(external_begin_frame_source)); | 337 proxy_->Start(std::move(external_begin_frame_source)); |
| 338 | 338 |
| 339 animation_host_->SetSupportsScrollAnimations(proxy_->SupportsImplScrolling()); | 339 animation_host_->SetSupportsScrollAnimations(proxy_->SupportsImplScrolling()); |
| 340 } | 340 } |
| 341 | 341 |
| 342 LayerTreeHost::~LayerTreeHost() { | 342 LayerTreeHost::~LayerTreeHost() { |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 | 567 |
| 568 void LayerTreeHost::CommitComplete() { | 568 void LayerTreeHost::CommitComplete() { |
| 569 source_frame_number_++; | 569 source_frame_number_++; |
| 570 client_->DidCommit(); | 570 client_->DidCommit(); |
| 571 if (did_complete_scale_animation_) { | 571 if (did_complete_scale_animation_) { |
| 572 client_->DidCompletePageScaleAnimation(); | 572 client_->DidCompletePageScaleAnimation(); |
| 573 did_complete_scale_animation_ = false; | 573 did_complete_scale_animation_ = false; |
| 574 } | 574 } |
| 575 } | 575 } |
| 576 | 576 |
| 577 void LayerTreeHost::SetOutputSurface(scoped_ptr<OutputSurface> surface) { | 577 void LayerTreeHost::SetOutputSurface(std::unique_ptr<OutputSurface> surface) { |
| 578 TRACE_EVENT0("cc", "LayerTreeHost::SetOutputSurface"); | 578 TRACE_EVENT0("cc", "LayerTreeHost::SetOutputSurface"); |
| 579 DCHECK(output_surface_lost_); | 579 DCHECK(output_surface_lost_); |
| 580 DCHECK(surface); | 580 DCHECK(surface); |
| 581 | 581 |
| 582 DCHECK(!new_output_surface_); | 582 DCHECK(!new_output_surface_); |
| 583 new_output_surface_ = std::move(surface); | 583 new_output_surface_ = std::move(surface); |
| 584 proxy_->SetOutputSurface(new_output_surface_.get()); | 584 proxy_->SetOutputSurface(new_output_surface_.get()); |
| 585 } | 585 } |
| 586 | 586 |
| 587 scoped_ptr<OutputSurface> LayerTreeHost::ReleaseOutputSurface() { | 587 std::unique_ptr<OutputSurface> LayerTreeHost::ReleaseOutputSurface() { |
| 588 DCHECK(!visible_); | 588 DCHECK(!visible_); |
| 589 DCHECK(!output_surface_lost_); | 589 DCHECK(!output_surface_lost_); |
| 590 | 590 |
| 591 DidLoseOutputSurface(); | 591 DidLoseOutputSurface(); |
| 592 proxy_->ReleaseOutputSurface(); | 592 proxy_->ReleaseOutputSurface(); |
| 593 return std::move(current_output_surface_); | 593 return std::move(current_output_surface_); |
| 594 } | 594 } |
| 595 | 595 |
| 596 void LayerTreeHost::RequestNewOutputSurface() { | 596 void LayerTreeHost::RequestNewOutputSurface() { |
| 597 client_->RequestNewOutputSurface(); | 597 client_->RequestNewOutputSurface(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 608 DCHECK(output_surface_lost_); | 608 DCHECK(output_surface_lost_); |
| 609 DCHECK(new_output_surface_); | 609 DCHECK(new_output_surface_); |
| 610 // Note: It is safe to drop all output surface references here as | 610 // Note: It is safe to drop all output surface references here as |
| 611 // LayerTreeHostImpl will not keep a pointer to either the old or | 611 // LayerTreeHostImpl will not keep a pointer to either the old or |
| 612 // new output surface after failing to initialize the new one. | 612 // new output surface after failing to initialize the new one. |
| 613 current_output_surface_ = nullptr; | 613 current_output_surface_ = nullptr; |
| 614 new_output_surface_ = nullptr; | 614 new_output_surface_ = nullptr; |
| 615 client_->DidFailToInitializeOutputSurface(); | 615 client_->DidFailToInitializeOutputSurface(); |
| 616 } | 616 } |
| 617 | 617 |
| 618 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( | 618 std::unique_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( |
| 619 LayerTreeHostImplClient* client) { | 619 LayerTreeHostImplClient* client) { |
| 620 DCHECK(!IsRemoteServer()); | 620 DCHECK(!IsRemoteServer()); |
| 621 DCHECK(task_runner_provider_->IsImplThread()); | 621 DCHECK(task_runner_provider_->IsImplThread()); |
| 622 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( | 622 std::unique_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( |
| 623 settings_, client, task_runner_provider_.get(), | 623 settings_, client, task_runner_provider_.get(), |
| 624 rendering_stats_instrumentation_.get(), shared_bitmap_manager_, | 624 rendering_stats_instrumentation_.get(), shared_bitmap_manager_, |
| 625 gpu_memory_buffer_manager_, task_graph_runner_, id_); | 625 gpu_memory_buffer_manager_, task_graph_runner_, id_); |
| 626 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_); | 626 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_); |
| 627 host_impl->SetContentIsSuitableForGpuRasterization( | 627 host_impl->SetContentIsSuitableForGpuRasterization( |
| 628 content_is_suitable_for_gpu_rasterization_); | 628 content_is_suitable_for_gpu_rasterization_); |
| 629 shared_bitmap_manager_ = NULL; | 629 shared_bitmap_manager_ = NULL; |
| 630 gpu_memory_buffer_manager_ = NULL; | 630 gpu_memory_buffer_manager_ = NULL; |
| 631 task_graph_runner_ = NULL; | 631 task_graph_runner_ = NULL; |
| 632 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); | 632 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 | 724 |
| 725 void LayerTreeHost::SetNextCommitWaitsForActivation() { | 725 void LayerTreeHost::SetNextCommitWaitsForActivation() { |
| 726 proxy_->SetNextCommitWaitsForActivation(); | 726 proxy_->SetNextCommitWaitsForActivation(); |
| 727 } | 727 } |
| 728 | 728 |
| 729 void LayerTreeHost::SetNextCommitForcesRedraw() { | 729 void LayerTreeHost::SetNextCommitForcesRedraw() { |
| 730 next_commit_forces_redraw_ = true; | 730 next_commit_forces_redraw_ = true; |
| 731 proxy_->SetNeedsUpdateLayers(); | 731 proxy_->SetNeedsUpdateLayers(); |
| 732 } | 732 } |
| 733 | 733 |
| 734 void LayerTreeHost::SetAnimationEvents(scoped_ptr<AnimationEvents> events) { | 734 void LayerTreeHost::SetAnimationEvents( |
| 735 std::unique_ptr<AnimationEvents> events) { |
| 735 DCHECK(task_runner_provider_->IsMainThread()); | 736 DCHECK(task_runner_provider_->IsMainThread()); |
| 736 animation_host_->SetAnimationEvents(std::move(events)); | 737 animation_host_->SetAnimationEvents(std::move(events)); |
| 737 } | 738 } |
| 738 | 739 |
| 739 void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) { | 740 void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) { |
| 740 if (root_layer_.get() == root_layer.get()) | 741 if (root_layer_.get() == root_layer.get()) |
| 741 return; | 742 return; |
| 742 | 743 |
| 743 if (root_layer_.get()) | 744 if (root_layer_.get()) |
| 744 root_layer_->SetLayerTreeHost(NULL); | 745 root_layer_->SetLayerTreeHost(NULL); |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 | 1095 |
| 1095 void LayerTreeHost::UpdateTopControlsState(TopControlsState constraints, | 1096 void LayerTreeHost::UpdateTopControlsState(TopControlsState constraints, |
| 1096 TopControlsState current, | 1097 TopControlsState current, |
| 1097 bool animate) { | 1098 bool animate) { |
| 1098 // Top controls are only used in threaded or remote mode. | 1099 // Top controls are only used in threaded or remote mode. |
| 1099 DCHECK(IsThreaded() || IsRemoteServer()); | 1100 DCHECK(IsThreaded() || IsRemoteServer()); |
| 1100 proxy_->UpdateTopControlsState(constraints, current, animate); | 1101 proxy_->UpdateTopControlsState(constraints, current, animate); |
| 1101 } | 1102 } |
| 1102 | 1103 |
| 1103 void LayerTreeHost::AnimateLayers(base::TimeTicks monotonic_time) { | 1104 void LayerTreeHost::AnimateLayers(base::TimeTicks monotonic_time) { |
| 1104 scoped_ptr<AnimationEvents> events = animation_host_->CreateEvents(); | 1105 std::unique_ptr<AnimationEvents> events = animation_host_->CreateEvents(); |
| 1105 | 1106 |
| 1106 if (animation_host_->AnimateLayers(monotonic_time)) | 1107 if (animation_host_->AnimateLayers(monotonic_time)) |
| 1107 animation_host_->UpdateAnimationState(true, events.get()); | 1108 animation_host_->UpdateAnimationState(true, events.get()); |
| 1108 | 1109 |
| 1109 if (!events->events_.empty()) | 1110 if (!events->events_.empty()) |
| 1110 property_trees_.needs_rebuild = true; | 1111 property_trees_.needs_rebuild = true; |
| 1111 } | 1112 } |
| 1112 | 1113 |
| 1113 UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) { | 1114 UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) { |
| 1114 DCHECK(client); | 1115 DCHECK(client); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1199 const size_t index = static_cast<size_t>(event_class); | 1200 const size_t index = static_cast<size_t>(event_class); |
| 1200 if (event_listener_properties_[index] == properties) | 1201 if (event_listener_properties_[index] == properties) |
| 1201 return; | 1202 return; |
| 1202 | 1203 |
| 1203 event_listener_properties_[index] = properties; | 1204 event_listener_properties_[index] = properties; |
| 1204 SetNeedsCommit(); | 1205 SetNeedsCommit(); |
| 1205 } | 1206 } |
| 1206 | 1207 |
| 1207 int LayerTreeHost::ScheduleMicroBenchmark( | 1208 int LayerTreeHost::ScheduleMicroBenchmark( |
| 1208 const std::string& benchmark_name, | 1209 const std::string& benchmark_name, |
| 1209 scoped_ptr<base::Value> value, | 1210 std::unique_ptr<base::Value> value, |
| 1210 const MicroBenchmark::DoneCallback& callback) { | 1211 const MicroBenchmark::DoneCallback& callback) { |
| 1211 return micro_benchmark_controller_.ScheduleRun(benchmark_name, | 1212 return micro_benchmark_controller_.ScheduleRun(benchmark_name, |
| 1212 std::move(value), callback); | 1213 std::move(value), callback); |
| 1213 } | 1214 } |
| 1214 | 1215 |
| 1215 bool LayerTreeHost::SendMessageToMicroBenchmark(int id, | 1216 bool LayerTreeHost::SendMessageToMicroBenchmark( |
| 1216 scoped_ptr<base::Value> value) { | 1217 int id, |
| 1218 std::unique_ptr<base::Value> value) { |
| 1217 return micro_benchmark_controller_.SendMessage(id, std::move(value)); | 1219 return micro_benchmark_controller_.SendMessage(id, std::move(value)); |
| 1218 } | 1220 } |
| 1219 | 1221 |
| 1220 void LayerTreeHost::InsertSwapPromiseMonitor(SwapPromiseMonitor* monitor) { | 1222 void LayerTreeHost::InsertSwapPromiseMonitor(SwapPromiseMonitor* monitor) { |
| 1221 swap_promise_monitor_.insert(monitor); | 1223 swap_promise_monitor_.insert(monitor); |
| 1222 } | 1224 } |
| 1223 | 1225 |
| 1224 void LayerTreeHost::RemoveSwapPromiseMonitor(SwapPromiseMonitor* monitor) { | 1226 void LayerTreeHost::RemoveSwapPromiseMonitor(SwapPromiseMonitor* monitor) { |
| 1225 swap_promise_monitor_.erase(monitor); | 1227 swap_promise_monitor_.erase(monitor); |
| 1226 } | 1228 } |
| 1227 | 1229 |
| 1228 void LayerTreeHost::NotifySwapPromiseMonitorsOfSetNeedsCommit() { | 1230 void LayerTreeHost::NotifySwapPromiseMonitorsOfSetNeedsCommit() { |
| 1229 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); | 1231 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); |
| 1230 for (; it != swap_promise_monitor_.end(); it++) | 1232 for (; it != swap_promise_monitor_.end(); it++) |
| 1231 (*it)->OnSetNeedsCommitOnMain(); | 1233 (*it)->OnSetNeedsCommitOnMain(); |
| 1232 } | 1234 } |
| 1233 | 1235 |
| 1234 void LayerTreeHost::QueueSwapPromise(scoped_ptr<SwapPromise> swap_promise) { | 1236 void LayerTreeHost::QueueSwapPromise( |
| 1237 std::unique_ptr<SwapPromise> swap_promise) { |
| 1235 DCHECK(swap_promise); | 1238 DCHECK(swap_promise); |
| 1236 swap_promise_list_.push_back(std::move(swap_promise)); | 1239 swap_promise_list_.push_back(std::move(swap_promise)); |
| 1237 } | 1240 } |
| 1238 | 1241 |
| 1239 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1242 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
| 1240 for (const auto& swap_promise : swap_promise_list_) | 1243 for (const auto& swap_promise : swap_promise_list_) |
| 1241 swap_promise->DidNotSwap(reason); | 1244 swap_promise->DidNotSwap(reason); |
| 1242 swap_promise_list_.clear(); | 1245 swap_promise_list_.clear(); |
| 1243 } | 1246 } |
| 1244 | 1247 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1264 const BeginFrameArgs& args) const { | 1267 const BeginFrameArgs& args) const { |
| 1265 client_->SendBeginFramesToChildren(args); | 1268 client_->SendBeginFramesToChildren(args); |
| 1266 } | 1269 } |
| 1267 | 1270 |
| 1268 void LayerTreeHost::SetAuthoritativeVSyncInterval( | 1271 void LayerTreeHost::SetAuthoritativeVSyncInterval( |
| 1269 const base::TimeDelta& interval) { | 1272 const base::TimeDelta& interval) { |
| 1270 proxy_->SetAuthoritativeVSyncInterval(interval); | 1273 proxy_->SetAuthoritativeVSyncInterval(interval); |
| 1271 } | 1274 } |
| 1272 | 1275 |
| 1273 void LayerTreeHost::RecordFrameTimingEvents( | 1276 void LayerTreeHost::RecordFrameTimingEvents( |
| 1274 scoped_ptr<FrameTimingTracker::CompositeTimingSet> composite_events, | 1277 std::unique_ptr<FrameTimingTracker::CompositeTimingSet> composite_events, |
| 1275 scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) { | 1278 std::unique_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) { |
| 1276 client_->RecordFrameTimingEvents(std::move(composite_events), | 1279 client_->RecordFrameTimingEvents(std::move(composite_events), |
| 1277 std::move(main_frame_events)); | 1280 std::move(main_frame_events)); |
| 1278 } | 1281 } |
| 1279 | 1282 |
| 1280 Layer* LayerTreeHost::LayerById(int id) const { | 1283 Layer* LayerTreeHost::LayerById(int id) const { |
| 1281 LayerIdMap::const_iterator iter = layer_id_map_.find(id); | 1284 LayerIdMap::const_iterator iter = layer_id_map_.find(id); |
| 1282 return iter != layer_id_map_.end() ? iter->second : NULL; | 1285 return iter != layer_id_map_.end() ? iter->second : NULL; |
| 1283 } | 1286 } |
| 1284 | 1287 |
| 1285 void LayerTreeHost::AddLayerShouldPushProperties(Layer* layer) { | 1288 void LayerTreeHost::AddLayerShouldPushProperties(Layer* layer) { |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1635 [seq_num](Layer* layer) { | 1638 [seq_num](Layer* layer) { |
| 1636 layer->set_property_tree_sequence_number(seq_num); | 1639 layer->set_property_tree_sequence_number(seq_num); |
| 1637 }, | 1640 }, |
| 1638 CallFunctionLayerType::ALL_LAYERS); | 1641 CallFunctionLayerType::ALL_LAYERS); |
| 1639 | 1642 |
| 1640 surface_id_namespace_ = proto.surface_id_namespace(); | 1643 surface_id_namespace_ = proto.surface_id_namespace(); |
| 1641 next_surface_sequence_ = proto.next_surface_sequence(); | 1644 next_surface_sequence_ = proto.next_surface_sequence(); |
| 1642 } | 1645 } |
| 1643 | 1646 |
| 1644 } // namespace cc | 1647 } // namespace cc |
| OLD | NEW |