Chromium Code Reviews| Index: cc/scheduler/scheduler.h |
| diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h |
| index 22674dfa03abe698c2b7c470c2beb6fd5981039b..4f0b52f199f410fa41183cc7c23572f3e42364ea 100644 |
| --- a/cc/scheduler/scheduler.h |
| +++ b/cc/scheduler/scheduler.h |
| @@ -17,6 +17,7 @@ |
| #include "cc/output/vsync_parameter_observer.h" |
| #include "cc/scheduler/begin_frame_source.h" |
| #include "cc/scheduler/begin_frame_tracker.h" |
| +#include "cc/scheduler/compositor_timing_history.h" |
| #include "cc/scheduler/delay_based_time_source.h" |
| #include "cc/scheduler/draw_result.h" |
| #include "cc/scheduler/scheduler_settings.h" |
| @@ -31,6 +32,8 @@ class SingleThreadTaskRunner; |
| namespace cc { |
| +class RenderingStatsInstrumentation; |
| + |
| class SchedulerClient { |
| public: |
| virtual void WillBeginImplFrame(const BeginFrameArgs& args) = 0; |
| @@ -43,9 +46,6 @@ class SchedulerClient { |
| virtual void ScheduledActionBeginOutputSurfaceCreation() = 0; |
| virtual void ScheduledActionPrepareTiles() = 0; |
| virtual void ScheduledActionInvalidateOutputSurface() = 0; |
| - virtual base::TimeDelta DrawDurationEstimate() = 0; |
| - virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() = 0; |
| - virtual base::TimeDelta CommitToActivateDurationEstimate() = 0; |
| virtual void DidFinishImplFrame() = 0; |
| virtual void SendBeginFramesToChildren(const BeginFrameArgs& args) = 0; |
| virtual void SendBeginMainFrameNotExpectedSoon() = 0; |
| @@ -79,14 +79,13 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase { |
| const SchedulerSettings& scheduler_settings, |
| int layer_tree_host_id, |
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| - scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| + scoped_ptr<BeginFrameSource> external_begin_frame_source, |
| + RenderingStatsInstrumentation* rendering_stats_instrumentation) { |
| SchedulerFrameSourcesConstructor frame_sources_constructor; |
| - return make_scoped_ptr(new Scheduler(client, |
| - scheduler_settings, |
| - layer_tree_host_id, |
| - task_runner, |
| - external_begin_frame_source.Pass(), |
| - &frame_sources_constructor)); |
| + return make_scoped_ptr(new Scheduler( |
| + client, scheduler_settings, layer_tree_host_id, task_runner, |
| + external_begin_frame_source.Pass(), rendering_stats_instrumentation, |
| + &frame_sources_constructor)); |
| } |
| ~Scheduler() override; |
| @@ -179,11 +178,15 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase { |
| int layer_tree_host_id, |
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| scoped_ptr<BeginFrameSource> external_begin_frame_source, |
| + RenderingStatsInstrumentation* rendering_stats_instrumentation, |
| SchedulerFrameSourcesConstructor* frame_sources_constructor); |
| // virtual for testing - Don't call these in the constructor or |
|
sunnyps
2015/06/23 18:11:03
nit: Do we really need a comment asking not to use
danakj
2015/06/23 18:13:02
The style guide forbids doing so.
brianderson
2015/06/23 20:23:27
Done.
|
| // destructor! |
| virtual base::TimeTicks Now() const; |
| + virtual base::TimeDelta DrawDurationEstimate() const; |
| + virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() const; |
| + virtual base::TimeDelta CommitToActivateDurationEstimate() const; |
| scoped_ptr<BeginFrameSourceMultiplexer> frame_source_; |
| BeginFrameSource* primary_frame_source_; |
| @@ -204,6 +207,7 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase { |
| int layer_tree_host_id_; |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| + CompositorTimingHistory compositor_timing_history_; |
| base::TimeDelta estimated_parent_draw_time_; |
| std::deque<BeginFrameArgs> begin_retro_frame_args_; |
| @@ -229,6 +233,7 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase { |
| void PostBeginRetroFrameIfNeeded(); |
| void SetupPollingMechanisms(); |
| void DrawAndSwapIfPossible(); |
| + void DrawAndSwapForced(); |
| void ProcessScheduledActions(); |
| bool CanCommitAndActivateBeforeDeadline() const; |
| void AdvanceCommitStateIfPossible(); |