| Index: cc/scheduler/scheduler_state_machine.h
|
| diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h
|
| index 36a60a77766ed4ec5bded19c9fc21d36f9648f27..93f676628ea7d95663ca4c6e7860785eccc302a1 100644
|
| --- a/cc/scheduler/scheduler_state_machine.h
|
| +++ b/cc/scheduler/scheduler_state_machine.h
|
| @@ -98,13 +98,18 @@ class CC_EXPORT SchedulerStateMachine {
|
| static const char* ForcedRedrawOnTimeoutStateToString(
|
| ForcedRedrawOnTimeoutState state);
|
|
|
| + BeginMainFrameState begin_main_frame_state() const {
|
| + return begin_main_frame_state_;
|
| + }
|
| +
|
| bool CommitPending() const {
|
| return begin_main_frame_state_ == BEGIN_MAIN_FRAME_STATE_SENT ||
|
| begin_main_frame_state_ == BEGIN_MAIN_FRAME_STATE_STARTED ||
|
| begin_main_frame_state_ == BEGIN_MAIN_FRAME_STATE_READY_TO_COMMIT;
|
| }
|
| - BeginMainFrameState begin_main_frame_state() const {
|
| - return begin_main_frame_state_;
|
| +
|
| + bool NewActiveTreeLikely() const {
|
| + return needs_begin_main_frame_ || CommitPending() || has_pending_tree_;
|
| }
|
|
|
| bool RedrawPending() const { return needs_redraw_; }
|
| @@ -133,11 +138,15 @@ class CC_EXPORT SchedulerStateMachine {
|
| void WillSendBeginMainFrame();
|
| void WillCommit(bool commit_had_no_updates);
|
| void WillActivate();
|
| - void WillDraw(bool did_request_swap);
|
| + void WillDraw();
|
| void WillBeginOutputSurfaceCreation();
|
| void WillPrepareTiles();
|
| void WillInvalidateOutputSurface();
|
|
|
| + void DidDraw(DrawResult draw_result);
|
| +
|
| + void AbortDrawAndSwap();
|
| +
|
| // Indicates whether the impl thread needs a BeginImplFrame callback in order
|
| // to make progress.
|
| bool BeginFrameNeeded() const;
|
| @@ -207,9 +216,6 @@ class CC_EXPORT SchedulerStateMachine {
|
| // SetCriticalBeginMainFrameToActivateIsFast.
|
| bool ImplLatencyTakesPriority() const;
|
|
|
| - // Indicates whether ACTION_DRAW_AND_SWAP_IF_POSSIBLE drew to the screen.
|
| - void DidDrawIfPossibleCompleted(DrawResult result);
|
| -
|
| // Indicates that a new begin main frame flow needs to be performed, either
|
| // to pull updates from the main thread to the impl, or to push deltas from
|
| // the impl thread to main.
|
| @@ -298,6 +304,9 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool ShouldPrepareTiles() const;
|
| bool ShouldInvalidateOutputSurface() const;
|
|
|
| + void WillDrawInternal();
|
| + void DidDrawInternal(DrawResult draw_result);
|
| +
|
| const SchedulerSettings settings_;
|
|
|
| OutputSurfaceState output_surface_state_;
|
| @@ -310,14 +319,14 @@ class CC_EXPORT SchedulerStateMachine {
|
| int current_frame_number_;
|
| int last_frame_number_animate_performed_;
|
| int last_frame_number_swap_performed_;
|
| - int last_frame_number_swap_requested_;
|
| + int last_frame_number_draw_performed_;
|
| int last_frame_number_begin_main_frame_sent_;
|
| int last_frame_number_invalidate_output_surface_performed_;
|
|
|
| // These are used to ensure that an action only happens once per frame,
|
| // deadline, etc.
|
| bool animate_funnel_;
|
| - bool request_swap_funnel_;
|
| + bool draw_funnel_;
|
| bool send_begin_main_frame_funnel_;
|
| bool invalidate_output_surface_funnel_;
|
| // prepare_tiles_funnel_ is "filled" each time PrepareTiles is called
|
| @@ -352,8 +361,8 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool video_needs_begin_frames_;
|
| bool last_commit_had_no_updates_;
|
| bool wait_for_ready_to_draw_;
|
| - bool did_request_swap_in_last_frame_;
|
| - bool did_perform_swap_in_last_draw_;
|
| + bool did_draw_in_last_frame_;
|
| + bool did_swap_in_last_frame_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine);
|
|
|