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

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: tests fixed 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
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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 synthetic_frame_source_->OnUpdateVSyncParameters(last_vsync_timebase_, 350 synthetic_frame_source_->OnUpdateVSyncParameters(last_vsync_timebase_,
356 interval); 351 interval);
357 } 352 }
358 } 353 }
359 354
360 void Scheduler::SetVideoNeedsBeginFrames(bool video_needs_begin_frames) { 355 void Scheduler::SetVideoNeedsBeginFrames(bool video_needs_begin_frames) {
361 state_machine_.SetVideoNeedsBeginFrames(video_needs_begin_frames); 356 state_machine_.SetVideoNeedsBeginFrames(video_needs_begin_frames);
362 ProcessScheduledActions(); 357 ProcessScheduledActions();
363 } 358 }
364 359
365 void Scheduler::OnDrawForOutputSurface() { 360 void Scheduler::OnDrawForOutputSurface(bool resourceless_software_draw) {
366 DCHECK(settings_.using_synchronous_renderer_compositor); 361 DCHECK(settings_.using_synchronous_renderer_compositor);
367 DCHECK_EQ(state_machine_.begin_impl_frame_state(), 362 DCHECK_EQ(state_machine_.begin_impl_frame_state(),
368 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE); 363 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
369 DCHECK(!BeginImplFrameDeadlinePending()); 364 DCHECK(!BeginImplFrameDeadlinePending());
370 365
366 state_machine_.SetResourcelessSoftareDraw(resourceless_software_draw);
371 state_machine_.OnBeginImplFrameDeadline(); 367 state_machine_.OnBeginImplFrameDeadline();
372 ProcessScheduledActions(); 368 ProcessScheduledActions();
373 369
374 state_machine_.OnBeginImplFrameIdle(); 370 state_machine_.OnBeginImplFrameIdle();
375 ProcessScheduledActions(); 371 ProcessScheduledActions();
372 state_machine_.SetResourcelessSoftareDraw(false);
376 } 373 }
377 374
378 // BeginRetroFrame is called for BeginFrames that we've deferred because 375 // BeginRetroFrame is called for BeginFrames that we've deferred because
379 // the scheduler was in the middle of processing a previous BeginFrame. 376 // the scheduler was in the middle of processing a previous BeginFrame.
380 void Scheduler::BeginRetroFrame() { 377 void Scheduler::BeginRetroFrame() {
381 TRACE_EVENT0("cc,benchmark", "Scheduler::BeginRetroFrame"); 378 TRACE_EVENT0("cc,benchmark", "Scheduler::BeginRetroFrame");
382 DCHECK(!settings_.using_synchronous_renderer_compositor); 379 DCHECK(!settings_.using_synchronous_renderer_compositor);
383 DCHECK(!begin_retro_frame_args_.empty()); 380 DCHECK(!begin_retro_frame_args_.empty());
384 DCHECK(!begin_retro_frame_task_.IsCancelled()); 381 DCHECK(!begin_retro_frame_task_.IsCancelled());
385 DCHECK_EQ(state_machine_.begin_impl_frame_state(), 382 DCHECK_EQ(state_machine_.begin_impl_frame_state(),
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 } 834 }
838 835
839 bool Scheduler::IsBeginMainFrameSentOrStarted() const { 836 bool Scheduler::IsBeginMainFrameSentOrStarted() const {
840 return (state_machine_.begin_main_frame_state() == 837 return (state_machine_.begin_main_frame_state() ==
841 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT || 838 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT ||
842 state_machine_.begin_main_frame_state() == 839 state_machine_.begin_main_frame_state() ==
843 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED); 840 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED);
844 } 841 }
845 842
846 } // namespace cc 843 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698