Index: cc/scheduler/scheduler.h |
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h |
index 7d577b0187ac334a9324f407990121a2f082eeb2..46607e4228dd79fab4be5e553f2e9e6106f60b1e 100644 |
--- a/cc/scheduler/scheduler.h |
+++ b/cc/scheduler/scheduler.h |
@@ -5,6 +5,7 @@ |
#ifndef CC_SCHEDULER_SCHEDULER_H_ |
#define CC_SCHEDULER_SCHEDULER_H_ |
+#include <deque> |
#include <string> |
#include "base/basictypes.h" |
@@ -24,7 +25,8 @@ class Thread; |
class SchedulerClient { |
public: |
- virtual void SetNeedsBeginImplFrame(bool enable) = 0; |
+ virtual void SetNeedsBeginFrame(bool enable) = 0; |
+ virtual void WillBeginImplFrame(const BeginFrameArgs& args) = 0; |
virtual void ScheduledActionSendBeginMainFrame() = 0; |
virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() = 0; |
virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() = 0; |
@@ -110,6 +112,8 @@ class CC_EXPORT Scheduler { |
base::TimeTicks LastBeginImplFrameTime(); |
+ void BeginFrame(const BeginFrameArgs& args); |
+ void BeginRetroFrame(); |
void BeginImplFrame(const BeginFrameArgs& args); |
void OnBeginImplFrameDeadline(); |
void PollForAnticipatedDrawTriggers(); |
@@ -128,9 +132,10 @@ class CC_EXPORT Scheduler { |
int layer_tree_host_id, |
const scoped_refptr<base::SequencedTaskRunner>& impl_task_runner); |
- base::TimeTicks AdjustedBeginImplFrameDeadline() const; |
+ base::TimeTicks AdjustedBeginImplFrameDeadline( |
+ const BeginFrameArgs& args) const; |
void ScheduleBeginImplFrameDeadline(base::TimeTicks deadline); |
- void SetupNextBeginImplFrameIfNeeded(); |
+ void SetupNextBeginFrameIfNeeded(); |
void ActivatePendingTree(); |
void DrawAndSwapIfPossible(); |
void DrawAndSwapForced(); |
@@ -147,8 +152,12 @@ class CC_EXPORT Scheduler { |
int layer_tree_host_id_; |
scoped_refptr<base::SequencedTaskRunner> impl_task_runner_; |
- bool last_set_needs_begin_impl_frame_; |
- BeginFrameArgs last_begin_impl_frame_args_; |
+ bool last_set_needs_begin_frame_; |
+ bool begin_retro_frame_posted_; |
+ |
+ std::deque<BeginFrameArgs> begin_retro_frame_args_; |
+ BeginFrameArgs begin_impl_frame_args_; |
+ |
base::CancelableClosure begin_impl_frame_deadline_closure_; |
base::CancelableClosure poll_for_draw_triggers_closure_; |
base::RepeatingTimer<Scheduler> advance_commit_state_timer_; |