Index: cc/surfaces/display_scheduler.h |
diff --git a/cc/surfaces/display_scheduler.h b/cc/surfaces/display_scheduler.h |
index a6a7b467d06d611cbeb3d9fdfb2cd57d72c240f4..1ce03168a5fabb6ac45d15061c1f793865ef5aed 100644 |
--- a/cc/surfaces/display_scheduler.h |
+++ b/cc/surfaces/display_scheduler.h |
@@ -13,13 +13,13 @@ |
#include "base/single_thread_task_runner.h" |
#include "cc/output/renderer_settings.h" |
#include "cc/scheduler/begin_frame_source.h" |
+#include "cc/surfaces/display_begin_frame_source.h" |
#include "cc/surfaces/surface_id.h" |
#include "cc/surfaces/surfaces_export.h" |
namespace cc { |
class OutputSurface; |
-class BeginFrameSource; |
class CC_SURFACES_EXPORT DisplaySchedulerClient { |
public: |
@@ -28,14 +28,16 @@ class CC_SURFACES_EXPORT DisplaySchedulerClient { |
virtual bool DrawAndSwap() = 0; |
}; |
-class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
+class CC_SURFACES_EXPORT DisplayScheduler |
+ : public BeginFrameObserverBase, |
+ public DisplayBeginFrameSourceClient { |
public: |
- DisplayScheduler(BeginFrameSource* begin_frame_source, |
- base::SingleThreadTaskRunner* task_runner, |
+ DisplayScheduler(base::SingleThreadTaskRunner* task_runner, |
int max_pending_swaps); |
~DisplayScheduler() override; |
void SetClient(DisplaySchedulerClient* client); |
+ void SetBeginFrameSource(DisplayBeginFrameSource* begin_frame_source); |
void SetVisible(bool visible); |
void SetRootSurfaceResourcesLocked(bool locked); |
@@ -49,10 +51,14 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
void OutputSurfaceLost(); |
- // BeginFrameObserverBase implementation |
+ // BeginFrameObserverBase implementation. |
bool OnBeginFrameDerivedImpl(const BeginFrameArgs& args) override; |
void OnBeginFrameSourcePausedChanged(bool paused) override; |
+ // DisplayBeginFrameSourceClient implementation. |
+ void ObserverStatusChanged() override; |
+ void BeginFrameSourceSwapping(BeginFrameSource* new_source) override; |
+ |
protected: |
base::TimeTicks DesiredBeginFrameDeadlineTime(); |
virtual void ScheduleBeginFrameDeadline(); |
@@ -62,9 +68,10 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
void StartObservingBeginFrames(); |
void StopObservingBeginFrames(); |
bool ShouldDraw(); |
+ bool BeginFrameForcesDamage() const; |
DisplaySchedulerClient* client_; |
- BeginFrameSource* begin_frame_source_; |
+ DisplayBeginFrameSource* begin_frame_source_; |
base::SingleThreadTaskRunner* task_runner_; |
BeginFrameArgs current_begin_frame_args_; |