| Index: cc/surfaces/display_scheduler.h
|
| diff --git a/cc/surfaces/display_scheduler.h b/cc/surfaces/display_scheduler.h
|
| index f6822878936393bdf001ac42ec42a2f3bd778200..c5e463ac3d199ddf2a5fd59049ed34af1f532f46 100644
|
| --- a/cc/surfaces/display_scheduler.h
|
| +++ b/cc/surfaces/display_scheduler.h
|
| @@ -13,13 +13,12 @@
|
| #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 BeginFrameSource;
|
| -
|
| class CC_SURFACES_EXPORT DisplaySchedulerClient {
|
| public:
|
| virtual ~DisplaySchedulerClient() {}
|
| @@ -27,14 +26,15 @@ class CC_SURFACES_EXPORT DisplaySchedulerClient {
|
| virtual bool DrawAndSwap() = 0;
|
| };
|
|
|
| -class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase {
|
| +class CC_SURFACES_EXPORT DisplayScheduler
|
| + : public DisplayBeginFrameSourceClient {
|
| public:
|
| - DisplayScheduler(BeginFrameSource* begin_frame_source,
|
| - base::SingleThreadTaskRunner* task_runner,
|
| + DisplayScheduler(base::SingleThreadTaskRunner* task_runner,
|
| int max_pending_swaps);
|
| - ~DisplayScheduler() override;
|
| + virtual ~DisplayScheduler();
|
|
|
| void SetClient(DisplaySchedulerClient* client);
|
| + void SetBeginFrameSource(DisplayBeginFrameSource* begin_frame_source);
|
|
|
| void SetVisible(bool visible);
|
| void SetRootSurfaceResourcesLocked(bool locked);
|
| @@ -48,25 +48,28 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase {
|
|
|
| void OutputSurfaceLost();
|
|
|
| - // BeginFrameObserverBase implementation
|
| - bool OnBeginFrameDerivedImpl(const BeginFrameArgs& args) override;
|
| - void OnBeginFrameSourcePausedChanged(bool paused) override;
|
| + // DisplayBeginFrameSourceClient implementation.
|
| + void BeginFrameObserverStatusChanged() override;
|
| + void OnBeginFrame(const BeginFrameArgs& args) override;
|
| + const BeginFrameArgs& LastUsedBeginFrameArgs() const override;
|
|
|
| protected:
|
| base::TimeTicks DesiredBeginFrameDeadlineTime();
|
| virtual void ScheduleBeginFrameDeadline();
|
| - void AttemptDrawAndSwap();
|
| + bool AttemptDrawAndSwap();
|
| void OnBeginFrameDeadline();
|
| - void DrawAndSwap();
|
| + bool DrawAndSwap();
|
| void StartObservingBeginFrames();
|
| void StopObservingBeginFrames();
|
| bool ShouldDraw();
|
| + void FinishFrame(bool did_draw);
|
|
|
| DisplaySchedulerClient* client_;
|
| - BeginFrameSource* begin_frame_source_;
|
| + DisplayBeginFrameSource* begin_frame_source_;
|
| base::SingleThreadTaskRunner* task_runner_;
|
|
|
| BeginFrameArgs current_begin_frame_args_;
|
| + BeginFrameArgs last_used_begin_frame_args_;
|
| base::Closure begin_frame_deadline_closure_;
|
| base::CancelableClosure begin_frame_deadline_task_;
|
| base::TimeTicks begin_frame_deadline_task_time_;
|
| @@ -81,20 +84,13 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase {
|
| bool inside_begin_frame_deadline_interval_;
|
| bool needs_draw_;
|
| bool expecting_root_surface_damage_because_of_resize_;
|
| - bool all_active_child_surfaces_ready_to_draw_;
|
|
|
| int pending_swaps_;
|
| int max_pending_swaps_;
|
|
|
| - bool observing_begin_frame_source_;
|
| + bool observing_begin_frames_;
|
|
|
| SurfaceId root_surface_id_;
|
| - bool root_surface_damaged_;
|
| - bool expect_damage_from_root_surface_;
|
| -
|
| - std::set<SurfaceId> child_surface_ids_damaged_;
|
| - std::set<SurfaceId> child_surface_ids_damaged_prev_;
|
| - std::vector<SurfaceId> child_surface_ids_to_expect_damage_from_;
|
|
|
| base::WeakPtrFactory<DisplayScheduler> weak_ptr_factory_;
|
|
|
|
|