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