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

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

Issue 1415763008: cc: Remove ThreadProxy dependency on LTHI::CurrentBeginFrameArgs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@CompositorTimingHistory2
Patch Set: 80 chars Created 5 years, 1 month 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
« no previous file with comments | « cc/trees/single_thread_proxy.h ('k') | cc/trees/thread_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/profiler/scoped_tracker.h" 8 #include "base/profiler/scoped_tracker.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "cc/debug/benchmark_instrumentation.h" 10 #include "cc/debug/benchmark_instrumentation.h"
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 719
720 void SingleThreadProxy::WillBeginImplFrame(const BeginFrameArgs& args) { 720 void SingleThreadProxy::WillBeginImplFrame(const BeginFrameArgs& args) {
721 #if DCHECK_IS_ON() 721 #if DCHECK_IS_ON()
722 DCHECK(!inside_impl_frame_) 722 DCHECK(!inside_impl_frame_)
723 << "WillBeginImplFrame called while already inside an impl frame!"; 723 << "WillBeginImplFrame called while already inside an impl frame!";
724 inside_impl_frame_ = true; 724 inside_impl_frame_ = true;
725 #endif 725 #endif
726 layer_tree_host_impl_->WillBeginImplFrame(args); 726 layer_tree_host_impl_->WillBeginImplFrame(args);
727 } 727 }
728 728
729 void SingleThreadProxy::ScheduledActionSendBeginMainFrame() { 729 void SingleThreadProxy::ScheduledActionSendBeginMainFrame(
730 const BeginFrameArgs& begin_frame_args) {
730 TRACE_EVENT0("cc", "SingleThreadProxy::ScheduledActionSendBeginMainFrame"); 731 TRACE_EVENT0("cc", "SingleThreadProxy::ScheduledActionSendBeginMainFrame");
731 // Although this proxy is single-threaded, it's problematic to synchronously 732 // Although this proxy is single-threaded, it's problematic to synchronously
732 // have BeginMainFrame happen after ScheduledActionSendBeginMainFrame. This 733 // have BeginMainFrame happen after ScheduledActionSendBeginMainFrame. This
733 // could cause a commit to occur in between a series of SetNeedsCommit calls 734 // could cause a commit to occur in between a series of SetNeedsCommit calls
734 // (i.e. property modifications) causing some to fall on one frame and some to 735 // (i.e. property modifications) causing some to fall on one frame and some to
735 // fall on the next. Doing it asynchronously instead matches the semantics of 736 // fall on the next. Doing it asynchronously instead matches the semantics of
736 // ThreadProxy::SetNeedsCommit where SetNeedsCommit will not cause a 737 // ThreadProxy::SetNeedsCommit where SetNeedsCommit will not cause a
737 // synchronous commit. 738 // synchronous commit.
738 #if DCHECK_IS_ON() 739 #if DCHECK_IS_ON()
739 DCHECK(inside_impl_frame_) 740 DCHECK(inside_impl_frame_)
740 << "BeginMainFrame should only be sent inside a BeginImplFrame"; 741 << "BeginMainFrame should only be sent inside a BeginImplFrame";
741 #endif 742 #endif
742 const BeginFrameArgs& begin_frame_args =
743 layer_tree_host_impl_->CurrentBeginFrameArgs();
744 743
745 MainThreadTaskRunner()->PostTask( 744 MainThreadTaskRunner()->PostTask(
746 FROM_HERE, base::Bind(&SingleThreadProxy::BeginMainFrame, 745 FROM_HERE, base::Bind(&SingleThreadProxy::BeginMainFrame,
747 weak_factory_.GetWeakPtr(), begin_frame_args)); 746 weak_factory_.GetWeakPtr(), begin_frame_args));
748 } 747 }
749 748
750 void SingleThreadProxy::SendBeginMainFrameNotExpectedSoon() { 749 void SingleThreadProxy::SendBeginMainFrameNotExpectedSoon() {
751 layer_tree_host_->BeginMainFrameNotExpectedSoon(); 750 layer_tree_host_->BeginMainFrameNotExpectedSoon();
752 } 751 }
753 752
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 << "DidFinishImplFrame called while not inside an impl frame!"; 887 << "DidFinishImplFrame called while not inside an impl frame!";
889 inside_impl_frame_ = false; 888 inside_impl_frame_ = false;
890 #endif 889 #endif
891 } 890 }
892 891
893 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { 892 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) {
894 layer_tree_host_->SendBeginFramesToChildren(args); 893 layer_tree_host_->SendBeginFramesToChildren(args);
895 } 894 }
896 895
897 } // namespace cc 896 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/single_thread_proxy.h ('k') | cc/trees/thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698