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

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

Issue 423773002: Unified BeginFrame scheduling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 3 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 | Annotate | Revision Log
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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 133 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
134 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { 134 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) {
135 InitializeProxy( 135 InitializeProxy(
136 ThreadProxy::Create(this, main_task_runner, impl_task_runner)); 136 ThreadProxy::Create(this, main_task_runner, impl_task_runner));
137 } 137 }
138 138
139 void LayerTreeHost::InitializeSingleThreaded( 139 void LayerTreeHost::InitializeSingleThreaded(
140 LayerTreeHostSingleThreadClient* single_thread_client, 140 LayerTreeHostSingleThreadClient* single_thread_client,
141 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) { 141 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) {
142 InitializeProxy( 142 InitializeProxy(
143 SingleThreadProxy::Create(this, single_thread_client, main_task_runner)); 143 SingleThreadProxy::Create(this,
144 single_thread_client,
145 main_task_runner));
144 } 146 }
145 147
146 void LayerTreeHost::InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing) { 148 void LayerTreeHost::InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing) {
147 InitializeProxy(proxy_for_testing.Pass()); 149 InitializeProxy(proxy_for_testing.Pass());
148 } 150 }
149 151
150 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) { 152 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
151 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); 153 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal");
152 154
153 proxy_ = proxy.Pass(); 155 proxy_ = proxy.Pass();
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 return host_impl.Pass(); 432 return host_impl.Pass();
431 } 433 }
432 434
433 void LayerTreeHost::DidLoseOutputSurface() { 435 void LayerTreeHost::DidLoseOutputSurface() {
434 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); 436 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface");
435 DCHECK(proxy_->IsMainThread()); 437 DCHECK(proxy_->IsMainThread());
436 438
437 if (output_surface_lost_) 439 if (output_surface_lost_)
438 return; 440 return;
439 441
442 client_->DidLoseOutputSurface();
brianderson 2014/09/04 18:45:46 Why is this needed?
443
440 num_failed_recreate_attempts_ = 0; 444 num_failed_recreate_attempts_ = 0;
441 output_surface_lost_ = true; 445 output_surface_lost_ = true;
442 SetNeedsCommit(); 446 SetNeedsCommit();
443 } 447 }
444 448
445 void LayerTreeHost::FinishAllRendering() { 449 void LayerTreeHost::FinishAllRendering() {
446 proxy_->FinishAllRendering(); 450 proxy_->FinishAllRendering();
447 } 451 }
448 452
449 void LayerTreeHost::SetDeferCommits(bool defer_commits) { 453 void LayerTreeHost::SetDeferCommits(bool defer_commits) {
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1288 DCHECK(swap_promise); 1292 DCHECK(swap_promise);
1289 swap_promise_list_.push_back(swap_promise.Pass()); 1293 swap_promise_list_.push_back(swap_promise.Pass());
1290 } 1294 }
1291 1295
1292 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { 1296 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) {
1293 for (size_t i = 0; i < swap_promise_list_.size(); i++) 1297 for (size_t i = 0; i < swap_promise_list_.size(); i++)
1294 swap_promise_list_[i]->DidNotSwap(reason); 1298 swap_promise_list_[i]->DidNotSwap(reason);
1295 swap_promise_list_.clear(); 1299 swap_promise_list_.clear();
1296 } 1300 }
1297 1301
1302 void LayerTreeHost::SetAuthoritativeVSyncInterval(base::TimeDelta interval) {
1303 proxy_->SetAuthoritativeVSyncInterval(interval);
1304 }
1305
1306 void LayerTreeHost::SetChildrenNeedBeginFrames(bool need_begin_frame) {
1307 proxy_->SetChildrenNeedBeginFrames(need_begin_frame);
1308 }
1309
1310 void LayerTreeHost::SendBeginFrameToChildren(const BeginFrameArgs& args) {
1311 client_->SendBeginFrameToChildren(args);
1312 }
1313
1298 } // namespace cc 1314 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698