Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 1014993002: [exp] cc: Introduce cc::CompositorMutator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698