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; |