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

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

Issue 22926024: cc: Control activation from the Scheduler (Closed) Base URL: http://git.chromium.org/chromium/src.git@schedOutputSurface4
Patch Set: Created 7 years, 4 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
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 "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 "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/debug/traced_value.h" 10 #include "cc/debug/traced_value.h"
(...skipping 26 matching lines...) Expand all
37 void Scheduler::SetVisible(bool visible) { 37 void Scheduler::SetVisible(bool visible) {
38 state_machine_.SetVisible(visible); 38 state_machine_.SetVisible(visible);
39 ProcessScheduledActions(); 39 ProcessScheduledActions();
40 } 40 }
41 41
42 void Scheduler::SetCanDraw(bool can_draw) { 42 void Scheduler::SetCanDraw(bool can_draw) {
43 state_machine_.SetCanDraw(can_draw); 43 state_machine_.SetCanDraw(can_draw);
44 ProcessScheduledActions(); 44 ProcessScheduledActions();
45 } 45 }
46 46
47 void Scheduler::SetHasPendingTree(bool has_pending_tree) { 47 void Scheduler::NotifyReadyToActivate() {
48 state_machine_.SetHasPendingTree(has_pending_tree); 48 state_machine_.NotifyReadyToActivate();
49 ProcessScheduledActions(); 49 ProcessScheduledActions();
50 } 50 }
51 51
52 void Scheduler::SetHasTrees(bool has_pending_tree, bool active_tree_is_null) {
53 state_machine_.SetHasTrees(has_pending_tree, active_tree_is_null);
54 ProcessScheduledActions();
55 }
56
52 void Scheduler::SetNeedsCommit() { 57 void Scheduler::SetNeedsCommit() {
53 state_machine_.SetNeedsCommit(); 58 state_machine_.SetNeedsCommit();
54 ProcessScheduledActions(); 59 ProcessScheduledActions();
55 } 60 }
56 61
57 void Scheduler::SetNeedsForcedCommit() { 62 void Scheduler::SetNeedsForcedCommit() {
58 state_machine_.SetNeedsCommit(); 63 state_machine_.SetNeedsCommit();
59 state_machine_.SetNeedsForcedCommit(); 64 state_machine_.SetNeedsForcedCommit();
60 ProcessScheduledActions(); 65 ProcessScheduledActions();
61 } 66 }
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 break; 218 break;
214 case SchedulerStateMachine::ACTION_SEND_BEGIN_FRAME_TO_MAIN_THREAD: 219 case SchedulerStateMachine::ACTION_SEND_BEGIN_FRAME_TO_MAIN_THREAD:
215 client_->ScheduledActionSendBeginFrameToMainThread(); 220 client_->ScheduledActionSendBeginFrameToMainThread();
216 break; 221 break;
217 case SchedulerStateMachine::ACTION_COMMIT: 222 case SchedulerStateMachine::ACTION_COMMIT:
218 client_->ScheduledActionCommit(); 223 client_->ScheduledActionCommit();
219 break; 224 break;
220 case SchedulerStateMachine::ACTION_UPDATE_VISIBLE_TILES: 225 case SchedulerStateMachine::ACTION_UPDATE_VISIBLE_TILES:
221 client_->ScheduledActionUpdateVisibleTiles(); 226 client_->ScheduledActionUpdateVisibleTiles();
222 break; 227 break;
223 case SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: 228 case SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE:
224 client_->ScheduledActionActivatePendingTreeIfNeeded(); 229 client_->ScheduledActionActivatePendingTree();
225 break; 230 break;
226 case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: 231 case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE:
227 DrawAndSwapIfPossible(); 232 DrawAndSwapIfPossible();
228 break; 233 break;
229 case SchedulerStateMachine::ACTION_DRAW_FORCED: 234 case SchedulerStateMachine::ACTION_DRAW_FORCED:
230 DrawAndSwapForced(); 235 DrawAndSwapForced();
231 break; 236 break;
232 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: 237 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT:
233 // No action is actually performed, but this allows the state machine to 238 // No action is actually performed, but this allows the state machine to
234 // advance out of its waiting to draw state without actually drawing. 239 // advance out of its waiting to draw state without actually drawing.
235 break; 240 break;
236 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION: 241 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION:
237 client_->ScheduledActionBeginOutputSurfaceCreation(); 242 client_->ScheduledActionBeginOutputSurfaceCreation();
238 break; 243 break;
239 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD: 244 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD:
240 client_->ScheduledActionAcquireLayerTexturesForMainThread(); 245 client_->ScheduledActionAcquireLayerTexturesForMainThread();
241 break; 246 break;
242 } 247 }
243 } while (action != SchedulerStateMachine::ACTION_NONE); 248 } while (action != SchedulerStateMachine::ACTION_NONE);
244 249
245 SetupNextBeginFrameIfNeeded(); 250 SetupNextBeginFrameIfNeeded();
246 client_->DidAnticipatedDrawTimeChange(AnticipatedDrawTime()); 251 client_->DidAnticipatedDrawTimeChange(AnticipatedDrawTime());
247 } 252 }
248 253
249 bool Scheduler::WillDrawIfNeeded() const { 254 bool Scheduler::WillDrawIfNeeded() const {
250 return !state_machine_.PendingDrawsShouldBeAborted(); 255 return !state_machine_.PendingDrawsShouldBeAborted();
251 } 256 }
252 257
253 } // namespace cc 258 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698