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

Side by Side Diff: cc/scheduler/scheduler.cc

Issue 1418273002: cc: Move draw params from SetExternalDrawConstraints to OnDraw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: EXPECT_SCOPED 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
« no previous file with comments | « cc/scheduler/scheduler.h ('k') | cc/scheduler/scheduler_unittest.cc » ('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/scheduler/scheduler.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 DCHECK_GE(draw_time.ToInternalValue(), 0); 128 DCHECK_GE(draw_time.ToInternalValue(), 0);
129 estimated_parent_draw_time_ = draw_time; 129 estimated_parent_draw_time_ = draw_time;
130 } 130 }
131 131
132 void Scheduler::SetVisible(bool visible) { 132 void Scheduler::SetVisible(bool visible) {
133 state_machine_.SetVisible(visible); 133 state_machine_.SetVisible(visible);
134 UpdateCompositorTimingHistoryRecordingEnabled(); 134 UpdateCompositorTimingHistoryRecordingEnabled();
135 ProcessScheduledActions(); 135 ProcessScheduledActions();
136 } 136 }
137 137
138 void Scheduler::SetResourcelessSoftareDraw(bool resourceless_draw) {
139 state_machine_.SetResourcelessSoftareDraw(resourceless_draw);
140 ProcessScheduledActions();
141 }
142
143 void Scheduler::SetCanDraw(bool can_draw) { 138 void Scheduler::SetCanDraw(bool can_draw) {
144 state_machine_.SetCanDraw(can_draw); 139 state_machine_.SetCanDraw(can_draw);
145 ProcessScheduledActions(); 140 ProcessScheduledActions();
146 } 141 }
147 142
148 void Scheduler::NotifyReadyToActivate() { 143 void Scheduler::NotifyReadyToActivate() {
149 compositor_timing_history_->ReadyToActivate(); 144 compositor_timing_history_->ReadyToActivate();
150 state_machine_.NotifyReadyToActivate(); 145 state_machine_.NotifyReadyToActivate();
151 ProcessScheduledActions(); 146 ProcessScheduledActions();
152 } 147 }
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 synthetic_frame_source_->OnUpdateVSyncParameters(last_vsync_timebase_, 362 synthetic_frame_source_->OnUpdateVSyncParameters(last_vsync_timebase_,
368 interval); 363 interval);
369 } 364 }
370 } 365 }
371 366
372 void Scheduler::SetVideoNeedsBeginFrames(bool video_needs_begin_frames) { 367 void Scheduler::SetVideoNeedsBeginFrames(bool video_needs_begin_frames) {
373 state_machine_.SetVideoNeedsBeginFrames(video_needs_begin_frames); 368 state_machine_.SetVideoNeedsBeginFrames(video_needs_begin_frames);
374 ProcessScheduledActions(); 369 ProcessScheduledActions();
375 } 370 }
376 371
377 void Scheduler::OnDrawForOutputSurface() { 372 void Scheduler::OnDrawForOutputSurface(bool resourceless_software_draw) {
378 DCHECK(settings_.using_synchronous_renderer_compositor); 373 DCHECK(settings_.using_synchronous_renderer_compositor);
379 DCHECK_EQ(state_machine_.begin_impl_frame_state(), 374 DCHECK_EQ(state_machine_.begin_impl_frame_state(),
380 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE); 375 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
381 DCHECK(!BeginImplFrameDeadlinePending()); 376 DCHECK(!BeginImplFrameDeadlinePending());
382 377
378 state_machine_.SetResourcelessSoftareDraw(resourceless_software_draw);
383 state_machine_.OnBeginImplFrameDeadline(); 379 state_machine_.OnBeginImplFrameDeadline();
384 ProcessScheduledActions(); 380 ProcessScheduledActions();
385 381
386 state_machine_.OnBeginImplFrameIdle(); 382 state_machine_.OnBeginImplFrameIdle();
387 ProcessScheduledActions(); 383 ProcessScheduledActions();
384 state_machine_.SetResourcelessSoftareDraw(false);
388 } 385 }
389 386
390 // BeginRetroFrame is called for BeginFrames that we've deferred because 387 // BeginRetroFrame is called for BeginFrames that we've deferred because
391 // the scheduler was in the middle of processing a previous BeginFrame. 388 // the scheduler was in the middle of processing a previous BeginFrame.
392 void Scheduler::BeginRetroFrame() { 389 void Scheduler::BeginRetroFrame() {
393 TRACE_EVENT0("cc,benchmark", "Scheduler::BeginRetroFrame"); 390 TRACE_EVENT0("cc,benchmark", "Scheduler::BeginRetroFrame");
394 DCHECK(!settings_.using_synchronous_renderer_compositor); 391 DCHECK(!settings_.using_synchronous_renderer_compositor);
395 DCHECK(!begin_retro_frame_args_.empty()); 392 DCHECK(!begin_retro_frame_args_.empty());
396 DCHECK(!begin_retro_frame_task_.IsCancelled()); 393 DCHECK(!begin_retro_frame_task_.IsCancelled());
397 DCHECK_EQ(state_machine_.begin_impl_frame_state(), 394 DCHECK_EQ(state_machine_.begin_impl_frame_state(),
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 } 893 }
897 894
898 bool Scheduler::IsBeginMainFrameSentOrStarted() const { 895 bool Scheduler::IsBeginMainFrameSentOrStarted() const {
899 return (state_machine_.begin_main_frame_state() == 896 return (state_machine_.begin_main_frame_state() ==
900 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT || 897 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT ||
901 state_machine_.begin_main_frame_state() == 898 state_machine_.begin_main_frame_state() ==
902 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED); 899 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED);
903 } 900 }
904 901
905 } // namespace cc 902 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler.h ('k') | cc/scheduler/scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698