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

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

Issue 1520623003: cc:: Change plumbing for external_begin_frame_source to the Scheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 debug_state_.RecordRenderingStats()); 137 debug_state_.RecordRenderingStats());
138 } 138 }
139 139
140 void LayerTreeHost::InitializeThreaded( 140 void LayerTreeHost::InitializeThreaded(
141 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 141 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
142 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, 142 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner,
143 scoped_ptr<BeginFrameSource> external_begin_frame_source) { 143 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
144 task_runner_provider_ = 144 task_runner_provider_ =
145 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); 145 TaskRunnerProvider::Create(main_task_runner, impl_task_runner);
146 scoped_ptr<ProxyMain> proxy_main = 146 scoped_ptr<ProxyMain> proxy_main =
147 ProxyMain::CreateThreaded(this, task_runner_provider_.get(), 147 ProxyMain::CreateThreaded(this, task_runner_provider_.get());
148 std::move(external_begin_frame_source)); 148 InitializeProxy(std::move(proxy_main),
149 InitializeProxy(std::move(proxy_main)); 149 std::move(external_begin_frame_source));
150 } 150 }
151 151
152 void LayerTreeHost::InitializeSingleThreaded( 152 void LayerTreeHost::InitializeSingleThreaded(
153 LayerTreeHostSingleThreadClient* single_thread_client, 153 LayerTreeHostSingleThreadClient* single_thread_client,
154 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 154 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
155 scoped_ptr<BeginFrameSource> external_begin_frame_source) { 155 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
156 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr); 156 task_runner_provider_ = TaskRunnerProvider::Create(main_task_runner, nullptr);
157 InitializeProxy(SingleThreadProxy::Create( 157 InitializeProxy(SingleThreadProxy::Create(this, single_thread_client,
158 this, single_thread_client, task_runner_provider_.get(), 158 task_runner_provider_.get()),
159 std::move(external_begin_frame_source))); 159 std::move(external_begin_frame_source));
160 } 160 }
161 161
162 void LayerTreeHost::InitializeForTesting( 162 void LayerTreeHost::InitializeForTesting(
163 scoped_ptr<TaskRunnerProvider> task_runner_provider, 163 scoped_ptr<TaskRunnerProvider> task_runner_provider,
164 scoped_ptr<Proxy> proxy_for_testing) { 164 scoped_ptr<Proxy> proxy_for_testing,
165 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
165 task_runner_provider_ = std::move(task_runner_provider); 166 task_runner_provider_ = std::move(task_runner_provider);
166 InitializeProxy(std::move(proxy_for_testing)); 167 InitializeProxy(std::move(proxy_for_testing),
168 std::move(external_begin_frame_source));
167 } 169 }
168 170
169 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) { 171 void LayerTreeHost::InitializeProxy(
172 scoped_ptr<Proxy> proxy,
173 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
170 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); 174 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal");
171 175
172 proxy_ = std::move(proxy); 176 proxy_ = std::move(proxy);
173 proxy_->Start(); 177 proxy_->Start(std::move(external_begin_frame_source));
174 if (settings_.accelerated_animation_enabled) { 178 if (settings_.accelerated_animation_enabled) {
175 if (animation_host_) 179 if (animation_host_)
176 animation_host_->SetSupportsScrollAnimations( 180 animation_host_->SetSupportsScrollAnimations(
177 proxy_->SupportsImplScrolling()); 181 proxy_->SupportsImplScrolling());
178 else 182 else
179 animation_registrar_->set_supports_scroll_animations( 183 animation_registrar_->set_supports_scroll_animations(
180 proxy_->SupportsImplScrolling()); 184 proxy_->SupportsImplScrolling());
181 } 185 }
182 } 186 }
183 187
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 return compositor_mode_ == CompositorMode::SingleThreaded; 1261 return compositor_mode_ == CompositorMode::SingleThreaded;
1258 } 1262 }
1259 1263
1260 bool LayerTreeHost::IsThreaded() const { 1264 bool LayerTreeHost::IsThreaded() const {
1261 DCHECK(compositor_mode_ != CompositorMode::Threaded || 1265 DCHECK(compositor_mode_ != CompositorMode::Threaded ||
1262 task_runner_provider_->HasImplThread()); 1266 task_runner_provider_->HasImplThread());
1263 return compositor_mode_ == CompositorMode::Threaded; 1267 return compositor_mode_ == CompositorMode::Threaded;
1264 } 1268 }
1265 1269
1266 } // namespace cc 1270 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/proxy.h » ('j') | cc/trees/proxy_main.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698