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

Side by Side Diff: cc/trees/single_thread_proxy.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/single_thread_proxy.h" 5 #include "cc/trees/single_thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "cc/debug/benchmark_instrumentation.h" 9 #include "cc/debug/benchmark_instrumentation.h"
10 #include "cc/output/context_provider.h" 10 #include "cc/output/context_provider.h"
11 #include "cc/output/output_surface.h" 11 #include "cc/output/output_surface.h"
12 #include "cc/quads/draw_quad.h" 12 #include "cc/quads/draw_quad.h"
13 #include "cc/resources/prioritized_resource_manager.h" 13 #include "cc/resources/prioritized_resource_manager.h"
14 #include "cc/resources/resource_update_controller.h" 14 #include "cc/resources/resource_update_controller.h"
15 #include "cc/trees/blocking_task_runner.h" 15 #include "cc/trees/blocking_task_runner.h"
16 #include "cc/trees/layer_tree_host.h" 16 #include "cc/trees/layer_tree_host.h"
17 #include "cc/trees/layer_tree_host_single_thread_client.h" 17 #include "cc/trees/layer_tree_host_single_thread_client.h"
18 #include "cc/trees/layer_tree_impl.h" 18 #include "cc/trees/layer_tree_impl.h"
19 #include "ui/gfx/frame_time.h" 19 #include "ui/gfx/frame_time.h"
20 20
21 namespace cc { 21 namespace cc {
22 22
23 scoped_ptr<Proxy> SingleThreadProxy::Create( 23 scoped_ptr<Proxy> SingleThreadProxy::Create(
24 LayerTreeHost* layer_tree_host, 24 LayerTreeHost* layer_tree_host,
25 LayerTreeHostSingleThreadClient* client, 25 LayerTreeHostSingleThreadClient* client,
26 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) { 26 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) {
27 return make_scoped_ptr( 27 return make_scoped_ptr(
28 new SingleThreadProxy(layer_tree_host, client, main_task_runner)) 28 new SingleThreadProxy(layer_tree_host,
29 client,
30 main_task_runner))
29 .PassAs<Proxy>(); 31 .PassAs<Proxy>();
30 } 32 }
31 33
32 SingleThreadProxy::SingleThreadProxy( 34 SingleThreadProxy::SingleThreadProxy(
33 LayerTreeHost* layer_tree_host, 35 LayerTreeHost* layer_tree_host,
34 LayerTreeHostSingleThreadClient* client, 36 LayerTreeHostSingleThreadClient* client,
35 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) 37 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner)
36 : Proxy(main_task_runner, NULL), 38 : Proxy(main_task_runner, NULL),
37 layer_tree_host_(layer_tree_host), 39 layer_tree_host_(layer_tree_host),
38 client_(client), 40 client_(client),
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 void SingleThreadProxy::DidSwapBuffersCompleteOnImplThread() { 423 void SingleThreadProxy::DidSwapBuffersCompleteOnImplThread() {
422 TRACE_EVENT0("cc", "SingleThreadProxy::DidSwapBuffersCompleteOnImplThread"); 424 TRACE_EVENT0("cc", "SingleThreadProxy::DidSwapBuffersCompleteOnImplThread");
423 if (scheduler_on_impl_thread_) 425 if (scheduler_on_impl_thread_)
424 scheduler_on_impl_thread_->DidSwapBuffersComplete(); 426 scheduler_on_impl_thread_->DidSwapBuffersComplete();
425 layer_tree_host_->DidCompleteSwapBuffers(); 427 layer_tree_host_->DidCompleteSwapBuffers();
426 } 428 }
427 429
428 void SingleThreadProxy::BeginFrame(const BeginFrameArgs& args) { 430 void SingleThreadProxy::BeginFrame(const BeginFrameArgs& args) {
429 TRACE_EVENT0("cc", "SingleThreadProxy::BeginFrame"); 431 TRACE_EVENT0("cc", "SingleThreadProxy::BeginFrame");
430 if (scheduler_on_impl_thread_) 432 if (scheduler_on_impl_thread_)
431 scheduler_on_impl_thread_->BeginImplFrame(args); 433 scheduler_on_impl_thread_->BeginFrame(args);
432 } 434 }
433 435
434 void SingleThreadProxy::CompositeImmediately(base::TimeTicks frame_begin_time) { 436 void SingleThreadProxy::CompositeImmediately(base::TimeTicks frame_begin_time) {
435 TRACE_EVENT0("cc", "SingleThreadProxy::CompositeImmediately"); 437 TRACE_EVENT0("cc", "SingleThreadProxy::CompositeImmediately");
436 DCHECK(Proxy::IsMainThread()); 438 DCHECK(Proxy::IsMainThread());
437 DCHECK(!layer_tree_host_->output_surface_lost()); 439 DCHECK(!layer_tree_host_->output_surface_lost());
438 440
439 DoCommit(frame_begin_time); 441 DoCommit(frame_begin_time);
440 442
441 LayerTreeHostImpl::FrameData frame; 443 LayerTreeHostImpl::FrameData frame;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 } 545 }
544 546
545 void SingleThreadProxy::DidCommitAndDrawFrame() { 547 void SingleThreadProxy::DidCommitAndDrawFrame() {
546 if (next_frame_is_newly_committed_frame_) { 548 if (next_frame_is_newly_committed_frame_) {
547 DebugScopedSetMainThread main(this); 549 DebugScopedSetMainThread main(this);
548 next_frame_is_newly_committed_frame_ = false; 550 next_frame_is_newly_committed_frame_ = false;
549 layer_tree_host_->DidCommitAndDrawFrame(); 551 layer_tree_host_->DidCommitAndDrawFrame();
550 } 552 }
551 } 553 }
552 554
555 void SingleThreadProxy::SetAuthoritativeVSyncInterval(
556 base::TimeDelta interval) {
557 scheduler_on_impl_thread_->SetAuthoritativeVSyncInterval(interval);
558 }
559
560 void SingleThreadProxy::SetChildrenNeedBeginFrames(bool need_begin_frame) {
561 scheduler_on_impl_thread_->SetChildrenNeedBeginFrames(need_begin_frame);
562 }
563
553 bool SingleThreadProxy::CommitPendingForTesting() { return false; } 564 bool SingleThreadProxy::CommitPendingForTesting() { return false; }
554 565
555 void SingleThreadProxy::SetNeedsBeginFrame(bool enable) { 566 void SingleThreadProxy::SetNeedsBeginFrame(bool enable) {
556 layer_tree_host_impl_->SetNeedsBeginFrame(enable); 567 layer_tree_host_impl_->SetNeedsBeginFrame(enable);
557 } 568 }
558 569
559 void SingleThreadProxy::WillBeginImplFrame(const BeginFrameArgs& args) { 570 void SingleThreadProxy::WillBeginImplFrame(const BeginFrameArgs& args) {
560 layer_tree_host_impl_->WillBeginImplFrame(args); 571 layer_tree_host_impl_->WillBeginImplFrame(args);
561 } 572 }
562 573
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 } 669 }
659 670
660 base::TimeDelta SingleThreadProxy::CommitToActivateDurationEstimate() { 671 base::TimeDelta SingleThreadProxy::CommitToActivateDurationEstimate() {
661 return timing_history_.CommitToActivateDurationEstimate(); 672 return timing_history_.CommitToActivateDurationEstimate();
662 } 673 }
663 674
664 void SingleThreadProxy::DidBeginImplFrameDeadline() { 675 void SingleThreadProxy::DidBeginImplFrameDeadline() {
665 layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame(); 676 layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame();
666 } 677 }
667 678
679 void SingleThreadProxy::SendBeginFrameToChildren(const BeginFrameArgs& args) {
680 layer_tree_host_->SendBeginFrameToChildren(args);
681 }
682
668 } // namespace cc 683 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698