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

Unified Diff: cc/scheduler/scheduler.h

Issue 218633010: cc: Handle retroactive BeginFrames in the Scheduler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@compositorVsyncDisable
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: cc/scheduler/scheduler.h
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index 7d577b0187ac334a9324f407990121a2f082eeb2..3f139c617839f2d33bca2de987d0dd748dc55532 100644
--- a/cc/scheduler/scheduler.h
+++ b/cc/scheduler/scheduler.h
@@ -24,7 +24,8 @@ class Thread;
class SchedulerClient {
public:
- virtual void SetNeedsBeginImplFrame(bool enable) = 0;
+ virtual void SetNeedsBeginFrame(bool enable) = 0;
+ virtual void OnBeginImplFrame(const BeginFrameArgs& args) = 0;
virtual void ScheduledActionSendBeginMainFrame() = 0;
virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() = 0;
virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() = 0;
@@ -110,7 +111,9 @@ class CC_EXPORT Scheduler {
base::TimeTicks LastBeginImplFrameTime();
- void BeginImplFrame(const BeginFrameArgs& args);
+ void BeginFrame(const BeginFrameArgs& args);
+ void BeginRetroFrame();
+ void BeginImplFrame();
void OnBeginImplFrameDeadline();
void PollForAnticipatedDrawTriggers();
@@ -130,7 +133,7 @@ class CC_EXPORT Scheduler {
base::TimeTicks AdjustedBeginImplFrameDeadline() const;
void ScheduleBeginImplFrameDeadline(base::TimeTicks deadline);
- void SetupNextBeginImplFrameIfNeeded();
+ void SetupNextBeginFrameIfNeeded();
void ActivatePendingTree();
void DrawAndSwapIfPossible();
void DrawAndSwapForced();
@@ -147,8 +150,13 @@ 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_;
+
+ BeginFrameArgs begin_frame_args_;
Sami 2014/04/01 13:09:10 It seems like we could do without this field and i
brianderson 2014/04/01 19:12:53 I liked the idea of having access to the original
brianderson 2014/04/02 04:15:57 I ended up getting rid of begin_frame_args_ like y
+ 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_;

Powered by Google App Engine
This is Rietveld 408576698