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

Unified Diff: cc/surfaces/display_scheduler.h

Issue 2527283003: cc: Introduce BeginFrame sequence numbers and acknowledgements.
Patch Set: Address Brian's comments. Created 4 years 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
« no previous file with comments | « cc/surfaces/display_begin_frame_source.cc ('k') | cc/surfaces/display_scheduler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/display_scheduler.h
diff --git a/cc/surfaces/display_scheduler.h b/cc/surfaces/display_scheduler.h
index f6822878936393bdf001ac42ec42a2f3bd778200..e5a26d8582263e482f3317460913ae2fafec1eb4 100644
--- a/cc/surfaces/display_scheduler.h
+++ b/cc/surfaces/display_scheduler.h
@@ -11,15 +11,15 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/single_thread_task_runner.h"
+#include "cc/output/begin_frame_args.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 +27,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 +49,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 +85,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_;
« no previous file with comments | « cc/surfaces/display_begin_frame_source.cc ('k') | cc/surfaces/display_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698