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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 namespace { | 48 namespace { |
49 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; | 49 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; |
50 } | 50 } |
51 | 51 |
52 namespace cc { | 52 namespace cc { |
53 | 53 |
54 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( | 54 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( |
55 LayerTreeHostClient* client, | 55 LayerTreeHostClient* client, |
56 SharedBitmapManager* shared_bitmap_manager, | 56 SharedBitmapManager* shared_bitmap_manager, |
57 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 57 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
58 CompositorMutator* compositor_mutator, | |
58 const LayerTreeSettings& settings, | 59 const LayerTreeSettings& settings, |
59 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 60 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
60 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 61 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
61 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 62 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
62 DCHECK(main_task_runner.get()); | 63 DCHECK(main_task_runner.get()); |
63 DCHECK(impl_task_runner.get()); | 64 DCHECK(impl_task_runner.get()); |
64 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( | 65 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
65 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); | 66 client, shared_bitmap_manager, gpu_memory_buffer_manager, |
67 compositor_mutator, settings)); | |
66 layer_tree_host->InitializeThreaded(main_task_runner, | 68 layer_tree_host->InitializeThreaded(main_task_runner, |
67 impl_task_runner, | 69 impl_task_runner, |
68 external_begin_frame_source.Pass()); | 70 external_begin_frame_source.Pass()); |
69 return layer_tree_host.Pass(); | 71 return layer_tree_host.Pass(); |
70 } | 72 } |
71 | 73 |
72 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( | 74 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( |
73 LayerTreeHostClient* client, | 75 LayerTreeHostClient* client, |
74 LayerTreeHostSingleThreadClient* single_thread_client, | 76 LayerTreeHostSingleThreadClient* single_thread_client, |
75 SharedBitmapManager* shared_bitmap_manager, | 77 SharedBitmapManager* shared_bitmap_manager, |
76 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 78 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
79 CompositorMutator* compositor_mutator, | |
77 const LayerTreeSettings& settings, | 80 const LayerTreeSettings& settings, |
78 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 81 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
79 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 82 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
80 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( | 83 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
81 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); | 84 client, shared_bitmap_manager, gpu_memory_buffer_manager, |
85 compositor_mutator, settings)); | |
82 layer_tree_host->InitializeSingleThreaded(single_thread_client, | 86 layer_tree_host->InitializeSingleThreaded(single_thread_client, |
83 main_task_runner, | 87 main_task_runner, |
84 external_begin_frame_source.Pass()); | 88 external_begin_frame_source.Pass()); |
85 return layer_tree_host.Pass(); | 89 return layer_tree_host.Pass(); |
86 } | 90 } |
87 | 91 |
88 LayerTreeHost::LayerTreeHost( | 92 LayerTreeHost::LayerTreeHost( |
89 LayerTreeHostClient* client, | 93 LayerTreeHostClient* client, |
90 SharedBitmapManager* shared_bitmap_manager, | 94 SharedBitmapManager* shared_bitmap_manager, |
91 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 95 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
96 CompositorMutator* compositor_mutator, | |
92 const LayerTreeSettings& settings) | 97 const LayerTreeSettings& settings) |
93 : micro_benchmark_controller_(this), | 98 : micro_benchmark_controller_(this), |
94 next_ui_resource_id_(1), | 99 next_ui_resource_id_(1), |
95 inside_begin_main_frame_(false), | 100 inside_begin_main_frame_(false), |
96 needs_full_tree_sync_(true), | 101 needs_full_tree_sync_(true), |
97 client_(client), | 102 client_(client), |
98 source_frame_number_(0), | 103 source_frame_number_(0), |
99 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), | 104 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), |
100 output_surface_lost_(true), | 105 output_surface_lost_(true), |
101 settings_(settings), | 106 settings_(settings), |
(...skipping 11 matching lines...) Expand all Loading... | |
113 gpu_rasterization_histogram_recorded_(false), | 118 gpu_rasterization_histogram_recorded_(false), |
114 background_color_(SK_ColorWHITE), | 119 background_color_(SK_ColorWHITE), |
115 has_transparent_background_(false), | 120 has_transparent_background_(false), |
116 partial_texture_update_requests_(0), | 121 partial_texture_update_requests_(0), |
117 did_complete_scale_animation_(false), | 122 did_complete_scale_animation_(false), |
118 in_paint_layer_contents_(false), | 123 in_paint_layer_contents_(false), |
119 id_(s_layer_tree_host_sequence_number.GetNext() + 1), | 124 id_(s_layer_tree_host_sequence_number.GetNext() + 1), |
120 next_commit_forces_redraw_(false), | 125 next_commit_forces_redraw_(false), |
121 shared_bitmap_manager_(shared_bitmap_manager), | 126 shared_bitmap_manager_(shared_bitmap_manager), |
122 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), | 127 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
128 compositor_mutator_(compositor_mutator), | |
123 surface_id_namespace_(0u), | 129 surface_id_namespace_(0u), |
124 next_surface_sequence_(1u) { | 130 next_surface_sequence_(1u) { |
125 if (settings_.accelerated_animation_enabled) | 131 if (settings_.accelerated_animation_enabled) |
126 animation_registrar_ = AnimationRegistrar::Create(); | 132 animation_registrar_ = AnimationRegistrar::Create(); |
127 rendering_stats_instrumentation_->set_record_rendering_stats( | 133 rendering_stats_instrumentation_->set_record_rendering_stats( |
128 debug_state_.RecordRenderingStats()); | 134 debug_state_.RecordRenderingStats()); |
129 } | 135 } |
130 | 136 |
131 void LayerTreeHost::InitializeThreaded( | 137 void LayerTreeHost::InitializeThreaded( |
132 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 138 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
413 } | 419 } |
414 | 420 |
415 void LayerTreeHost::DidFailToInitializeOutputSurface() { | 421 void LayerTreeHost::DidFailToInitializeOutputSurface() { |
416 DCHECK(output_surface_lost_); | 422 DCHECK(output_surface_lost_); |
417 client_->DidFailToInitializeOutputSurface(); | 423 client_->DidFailToInitializeOutputSurface(); |
418 } | 424 } |
419 | 425 |
420 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( | 426 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( |
421 LayerTreeHostImplClient* client) { | 427 LayerTreeHostImplClient* client) { |
422 DCHECK(proxy_->IsImplThread()); | 428 DCHECK(proxy_->IsImplThread()); |
423 scoped_ptr<LayerTreeHostImpl> host_impl = | 429 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( |
424 LayerTreeHostImpl::Create(settings_, | 430 settings_, client, proxy_.get(), rendering_stats_instrumentation_.get(), |
425 client, | 431 shared_bitmap_manager_, gpu_memory_buffer_manager_, compositor_mutator_, |
loyso (OOO)
2015/03/20 02:38:14
Do we want to make CompositorMutator object shared
| |
426 proxy_.get(), | 432 id_); |
427 rendering_stats_instrumentation_.get(), | |
428 shared_bitmap_manager_, | |
429 gpu_memory_buffer_manager_, | |
430 id_); | |
431 host_impl->SetUseGpuRasterization(UseGpuRasterization()); | 433 host_impl->SetUseGpuRasterization(UseGpuRasterization()); |
432 shared_bitmap_manager_ = NULL; | 434 shared_bitmap_manager_ = NULL; |
433 gpu_memory_buffer_manager_ = NULL; | 435 gpu_memory_buffer_manager_ = NULL; |
436 compositor_mutator_ = nullptr; | |
434 top_controls_manager_weak_ptr_ = | 437 top_controls_manager_weak_ptr_ = |
435 host_impl->top_controls_manager()->AsWeakPtr(); | 438 host_impl->top_controls_manager()->AsWeakPtr(); |
436 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); | 439 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); |
437 return host_impl.Pass(); | 440 return host_impl.Pass(); |
438 } | 441 } |
439 | 442 |
440 void LayerTreeHost::DidLoseOutputSurface() { | 443 void LayerTreeHost::DidLoseOutputSurface() { |
441 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); | 444 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); |
442 DCHECK(proxy_->IsMainThread()); | 445 DCHECK(proxy_->IsMainThread()); |
443 | 446 |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1254 bool children_need_begin_frames) const { | 1257 bool children_need_begin_frames) const { |
1255 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); | 1258 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); |
1256 } | 1259 } |
1257 | 1260 |
1258 void LayerTreeHost::SendBeginFramesToChildren( | 1261 void LayerTreeHost::SendBeginFramesToChildren( |
1259 const BeginFrameArgs& args) const { | 1262 const BeginFrameArgs& args) const { |
1260 client_->SendBeginFramesToChildren(args); | 1263 client_->SendBeginFramesToChildren(args); |
1261 } | 1264 } |
1262 | 1265 |
1263 } // namespace cc | 1266 } // namespace cc |
OLD | NEW |