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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 namespace { | 49 namespace { |
50 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; | 50 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; |
51 } | 51 } |
52 | 52 |
53 namespace cc { | 53 namespace cc { |
54 | 54 |
55 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( | 55 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( |
56 LayerTreeHostClient* client, | 56 LayerTreeHostClient* client, |
57 SharedBitmapManager* shared_bitmap_manager, | 57 SharedBitmapManager* shared_bitmap_manager, |
58 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 58 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 59 TaskGraphRunner* task_graph_runner, |
59 const LayerTreeSettings& settings, | 60 const LayerTreeSettings& settings, |
60 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 61 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
61 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 62 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
62 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 63 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
63 DCHECK(main_task_runner.get()); | 64 DCHECK(main_task_runner.get()); |
64 DCHECK(impl_task_runner.get()); | 65 DCHECK(impl_task_runner.get()); |
65 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( | 66 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
66 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); | 67 client, shared_bitmap_manager, gpu_memory_buffer_manager, |
| 68 task_graph_runner, settings)); |
67 layer_tree_host->InitializeThreaded(main_task_runner, | 69 layer_tree_host->InitializeThreaded(main_task_runner, |
68 impl_task_runner, | 70 impl_task_runner, |
69 external_begin_frame_source.Pass()); | 71 external_begin_frame_source.Pass()); |
70 return layer_tree_host.Pass(); | 72 return layer_tree_host.Pass(); |
71 } | 73 } |
72 | 74 |
73 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( | 75 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( |
74 LayerTreeHostClient* client, | 76 LayerTreeHostClient* client, |
75 LayerTreeHostSingleThreadClient* single_thread_client, | 77 LayerTreeHostSingleThreadClient* single_thread_client, |
76 SharedBitmapManager* shared_bitmap_manager, | 78 SharedBitmapManager* shared_bitmap_manager, |
77 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 79 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 80 TaskGraphRunner* task_graph_runner, |
78 const LayerTreeSettings& settings, | 81 const LayerTreeSettings& settings, |
79 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 82 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
80 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 83 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
81 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( | 84 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
82 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); | 85 client, shared_bitmap_manager, gpu_memory_buffer_manager, |
| 86 task_graph_runner, settings)); |
83 layer_tree_host->InitializeSingleThreaded(single_thread_client, | 87 layer_tree_host->InitializeSingleThreaded(single_thread_client, |
84 main_task_runner, | 88 main_task_runner, |
85 external_begin_frame_source.Pass()); | 89 external_begin_frame_source.Pass()); |
86 return layer_tree_host.Pass(); | 90 return layer_tree_host.Pass(); |
87 } | 91 } |
88 | 92 |
89 LayerTreeHost::LayerTreeHost( | 93 LayerTreeHost::LayerTreeHost( |
90 LayerTreeHostClient* client, | 94 LayerTreeHostClient* client, |
91 SharedBitmapManager* shared_bitmap_manager, | 95 SharedBitmapManager* shared_bitmap_manager, |
92 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 96 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 97 TaskGraphRunner* task_graph_runner, |
93 const LayerTreeSettings& settings) | 98 const LayerTreeSettings& settings) |
94 : micro_benchmark_controller_(this), | 99 : micro_benchmark_controller_(this), |
95 next_ui_resource_id_(1), | 100 next_ui_resource_id_(1), |
96 inside_begin_main_frame_(false), | 101 inside_begin_main_frame_(false), |
97 needs_full_tree_sync_(true), | 102 needs_full_tree_sync_(true), |
98 client_(client), | 103 client_(client), |
99 source_frame_number_(0), | 104 source_frame_number_(0), |
100 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), | 105 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), |
101 output_surface_lost_(true), | 106 output_surface_lost_(true), |
102 settings_(settings), | 107 settings_(settings), |
(...skipping 11 matching lines...) Expand all Loading... |
114 gpu_rasterization_histogram_recorded_(false), | 119 gpu_rasterization_histogram_recorded_(false), |
115 background_color_(SK_ColorWHITE), | 120 background_color_(SK_ColorWHITE), |
116 has_transparent_background_(false), | 121 has_transparent_background_(false), |
117 partial_texture_update_requests_(0), | 122 partial_texture_update_requests_(0), |
118 did_complete_scale_animation_(false), | 123 did_complete_scale_animation_(false), |
119 in_paint_layer_contents_(false), | 124 in_paint_layer_contents_(false), |
120 id_(s_layer_tree_host_sequence_number.GetNext() + 1), | 125 id_(s_layer_tree_host_sequence_number.GetNext() + 1), |
121 next_commit_forces_redraw_(false), | 126 next_commit_forces_redraw_(false), |
122 shared_bitmap_manager_(shared_bitmap_manager), | 127 shared_bitmap_manager_(shared_bitmap_manager), |
123 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), | 128 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
| 129 task_graph_runner_(task_graph_runner), |
124 surface_id_namespace_(0u), | 130 surface_id_namespace_(0u), |
125 next_surface_sequence_(1u) { | 131 next_surface_sequence_(1u) { |
126 if (settings_.accelerated_animation_enabled) | 132 if (settings_.accelerated_animation_enabled) |
127 animation_registrar_ = AnimationRegistrar::Create(); | 133 animation_registrar_ = AnimationRegistrar::Create(); |
128 rendering_stats_instrumentation_->set_record_rendering_stats( | 134 rendering_stats_instrumentation_->set_record_rendering_stats( |
129 debug_state_.RecordRenderingStats()); | 135 debug_state_.RecordRenderingStats()); |
130 } | 136 } |
131 | 137 |
132 void LayerTreeHost::InitializeThreaded( | 138 void LayerTreeHost::InitializeThreaded( |
133 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 139 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 } | 429 } |
424 | 430 |
425 void LayerTreeHost::DidFailToInitializeOutputSurface() { | 431 void LayerTreeHost::DidFailToInitializeOutputSurface() { |
426 DCHECK(output_surface_lost_); | 432 DCHECK(output_surface_lost_); |
427 client_->DidFailToInitializeOutputSurface(); | 433 client_->DidFailToInitializeOutputSurface(); |
428 } | 434 } |
429 | 435 |
430 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( | 436 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( |
431 LayerTreeHostImplClient* client) { | 437 LayerTreeHostImplClient* client) { |
432 DCHECK(proxy_->IsImplThread()); | 438 DCHECK(proxy_->IsImplThread()); |
433 scoped_ptr<LayerTreeHostImpl> host_impl = | 439 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( |
434 LayerTreeHostImpl::Create(settings_, | 440 settings_, client, proxy_.get(), rendering_stats_instrumentation_.get(), |
435 client, | 441 shared_bitmap_manager_, gpu_memory_buffer_manager_, task_graph_runner_, |
436 proxy_.get(), | 442 id_); |
437 rendering_stats_instrumentation_.get(), | |
438 shared_bitmap_manager_, | |
439 gpu_memory_buffer_manager_, | |
440 id_); | |
441 host_impl->SetUseGpuRasterization(UseGpuRasterization()); | 443 host_impl->SetUseGpuRasterization(UseGpuRasterization()); |
442 shared_bitmap_manager_ = NULL; | 444 shared_bitmap_manager_ = NULL; |
443 gpu_memory_buffer_manager_ = NULL; | 445 gpu_memory_buffer_manager_ = NULL; |
| 446 task_graph_runner_ = NULL; |
444 top_controls_manager_weak_ptr_ = | 447 top_controls_manager_weak_ptr_ = |
445 host_impl->top_controls_manager()->AsWeakPtr(); | 448 host_impl->top_controls_manager()->AsWeakPtr(); |
446 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); | 449 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); |
447 return host_impl.Pass(); | 450 return host_impl.Pass(); |
448 } | 451 } |
449 | 452 |
450 void LayerTreeHost::DidLoseOutputSurface() { | 453 void LayerTreeHost::DidLoseOutputSurface() { |
451 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); | 454 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); |
452 DCHECK(proxy_->IsMainThread()); | 455 DCHECK(proxy_->IsMainThread()); |
453 | 456 |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 bool children_need_begin_frames) const { | 1267 bool children_need_begin_frames) const { |
1265 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); | 1268 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); |
1266 } | 1269 } |
1267 | 1270 |
1268 void LayerTreeHost::SendBeginFramesToChildren( | 1271 void LayerTreeHost::SendBeginFramesToChildren( |
1269 const BeginFrameArgs& args) const { | 1272 const BeginFrameArgs& args) const { |
1270 client_->SendBeginFramesToChildren(args); | 1273 client_->SendBeginFramesToChildren(args); |
1271 } | 1274 } |
1272 | 1275 |
1273 } // namespace cc | 1276 } // namespace cc |
OLD | NEW |