Chromium Code Reviews| Index: cc/scheduler/scheduler.cc |
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
| index e383894a7836f9164ceb6cb14e647ce929837622..ecb47a182ceb7b4f757b6b6860b75a7d00a3b515 100644 |
| --- a/cc/scheduler/scheduler.cc |
| +++ b/cc/scheduler/scheduler.cc |
| @@ -54,9 +54,9 @@ void Scheduler::SetNeedsCommit() { |
| ProcessScheduledActions(); |
| } |
| -void Scheduler::SetNeedsForcedCommit() { |
| +void Scheduler::SetNeedsForcedCommitForReadback() { |
| state_machine_.SetNeedsCommit(); |
| - state_machine_.SetNeedsForcedCommit(); |
| + state_machine_.SetNeedsForcedCommitForReadback(); |
| ProcessScheduledActions(); |
| } |
| @@ -70,11 +70,6 @@ void Scheduler::DidSwapUseIncompleteTile() { |
| ProcessScheduledActions(); |
| } |
| -void Scheduler::SetNeedsForcedRedraw() { |
| - state_machine_.SetNeedsForcedRedraw(); |
| - ProcessScheduledActions(); |
| -} |
| - |
| void Scheduler::SetMainThreadNeedsLayerTextures() { |
| state_machine_.SetMainThreadNeedsLayerTextures(); |
| ProcessScheduledActions(); |
| @@ -178,7 +173,7 @@ void Scheduler::BeginFrame(const BeginFrameArgs& args) { |
| } |
| void Scheduler::DrawAndSwapIfPossible() { |
| - ScheduledActionDrawAndSwapResult result = |
| + DrawSwapReadbackResult result = |
| client_->ScheduledActionDrawAndSwapIfPossible(); |
| state_machine_.DidDrawIfPossibleCompleted(result.did_draw); |
| if (result.did_swap) |
| @@ -186,8 +181,7 @@ void Scheduler::DrawAndSwapIfPossible() { |
| } |
| void Scheduler::DrawAndSwapForced() { |
| - ScheduledActionDrawAndSwapResult result = |
| - client_->ScheduledActionDrawAndSwapForced(); |
| + DrawSwapReadbackResult result = client_->ScheduledActionDrawAndSwapForced(); |
| if (result.did_swap) |
| has_pending_begin_frame_ = false; |
| } |
| @@ -202,6 +196,7 @@ void Scheduler::ProcessScheduledActions() { |
| SchedulerStateMachine::Action action; |
| do { |
| + state_machine_.CheckInvariants(); |
| action = state_machine_.NextAction(); |
| TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler"), |
| "SchedulerStateMachine", |
| @@ -223,16 +218,19 @@ void Scheduler::ProcessScheduledActions() { |
| case SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE: |
| client_->ScheduledActionActivatePendingTree(); |
| break; |
| - case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: |
| + case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE: |
| DrawAndSwapIfPossible(); |
| break; |
| - case SchedulerStateMachine::ACTION_DRAW_FORCED: |
| + case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: |
| DrawAndSwapForced(); |
| break; |
| case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: |
| // No action is actually performed, but this allows the state machine to |
| // advance out of its waiting to draw state without actually drawing. |
| break; |
| + case SchedulerStateMachine::ACTION_DRAW_AND_READBACK: |
| + client_->ScheduledActionDrawAndReadback(); |
|
danakj
2013/08/30 15:56:41
How about a DrawAndReadback() method above that ca
brianderson
2013/09/03 22:41:12
I avoided checking for success because I read some
|
| + break; |
| case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION: |
| client_->ScheduledActionBeginOutputSurfaceCreation(); |
| break; |