| 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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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::SetTaskRunnerProviderForTesting( | 171 void LayerTreeHost::SetTaskRunnerProviderForTesting( |
| 170 scoped_ptr<TaskRunnerProvider> task_runner_provider) { | 172 scoped_ptr<TaskRunnerProvider> task_runner_provider) { |
| 171 DCHECK(!task_runner_provider_); | 173 DCHECK(!task_runner_provider_); |
| 172 task_runner_provider_ = std::move(task_runner_provider); | 174 task_runner_provider_ = std::move(task_runner_provider); |
| 173 } | 175 } |
| 174 | 176 |
| 175 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) { | 177 void LayerTreeHost::InitializeProxy( |
| 178 scoped_ptr<Proxy> proxy, |
| 179 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| 176 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); | 180 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); |
| 177 | 181 |
| 178 proxy_ = std::move(proxy); | 182 proxy_ = std::move(proxy); |
| 179 proxy_->Start(); | 183 proxy_->Start(std::move(external_begin_frame_source)); |
| 180 if (settings_.accelerated_animation_enabled) { | 184 if (settings_.accelerated_animation_enabled) { |
| 181 if (animation_host_) | 185 if (animation_host_) |
| 182 animation_host_->SetSupportsScrollAnimations( | 186 animation_host_->SetSupportsScrollAnimations( |
| 183 proxy_->SupportsImplScrolling()); | 187 proxy_->SupportsImplScrolling()); |
| 184 else | 188 else |
| 185 animation_registrar_->set_supports_scroll_animations( | 189 animation_registrar_->set_supports_scroll_animations( |
| 186 proxy_->SupportsImplScrolling()); | 190 proxy_->SupportsImplScrolling()); |
| 187 } | 191 } |
| 188 } | 192 } |
| 189 | 193 |
| (...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1263 return compositor_mode_ == CompositorMode::SingleThreaded; | 1267 return compositor_mode_ == CompositorMode::SingleThreaded; |
| 1264 } | 1268 } |
| 1265 | 1269 |
| 1266 bool LayerTreeHost::IsThreaded() const { | 1270 bool LayerTreeHost::IsThreaded() const { |
| 1267 DCHECK(compositor_mode_ != CompositorMode::Threaded || | 1271 DCHECK(compositor_mode_ != CompositorMode::Threaded || |
| 1268 task_runner_provider_->HasImplThread()); | 1272 task_runner_provider_->HasImplThread()); |
| 1269 return compositor_mode_ == CompositorMode::Threaded; | 1273 return compositor_mode_ == CompositorMode::Threaded; |
| 1270 } | 1274 } |
| 1271 | 1275 |
| 1272 } // namespace cc | 1276 } // namespace cc |
| OLD | NEW |