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

Unified Diff: cc/surfaces/display_scheduler.h

Issue 2411793008: Adds BeginFrameControl via DevTools.
Patch Set: BFC prototype v2 with allow_latency_opts and waiting for BFOs. Created 4 years, 1 month 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 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_;
« 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