| Index: cc/scheduler/frame_rate_controller.h
|
| diff --git a/cc/scheduler/frame_rate_controller.h b/cc/scheduler/frame_rate_controller.h
|
| index 070c26a3a09c5afac4d8d46530a4daedd016615a..70964e25f9834410a49e45033f384076e65d911f 100644
|
| --- a/cc/scheduler/frame_rate_controller.h
|
| +++ b/cc/scheduler/frame_rate_controller.h
|
| @@ -15,18 +15,21 @@ namespace cc {
|
|
|
| class Thread;
|
| class TimeSource;
|
| +class FrameRateController;
|
|
|
| class CC_EXPORT FrameRateControllerClient {
|
| - public:
|
| - // Throttled is true when we have a maximum number of frames pending.
|
| - virtual void BeginFrame(bool throttled) = 0;
|
| -
|
| protected:
|
| virtual ~FrameRateControllerClient() {}
|
| +
|
| + public:
|
| + // Throttled is true when we have a maximum number of frames pending.
|
| + virtual void FrameRateControllerTick(bool throttled) = 0;
|
| };
|
|
|
| class FrameRateControllerTimeSourceAdapter;
|
|
|
| +// The FrameRateController is used in cases where we self-tick (i.e. BeginFrame
|
| +// is not sent by a parent compositor.
|
| class CC_EXPORT FrameRateController {
|
| public:
|
| enum {
|
| @@ -41,6 +44,7 @@ class CC_EXPORT FrameRateController {
|
| void SetClient(FrameRateControllerClient* client) { client_ = client; }
|
|
|
| void SetActive(bool active);
|
| + bool IsActive() { return active_; }
|
|
|
| // Use the following methods to adjust target frame rate.
|
| //
|
| @@ -51,9 +55,9 @@ class CC_EXPORT FrameRateController {
|
| void DidSwapBuffers();
|
| void DidSwapBuffersComplete();
|
| void DidAbortAllPendingFrames();
|
| - void SetMaxFramesPending(int max_frames_pending); // 0 for unlimited.
|
| - int MaxFramesPending() const { return max_frames_pending_; }
|
| - int NumFramesPendingForTesting() const { return num_frames_pending_; }
|
| + void SetMaxSwapsPending(int max_swaps_pending); // 0 for unlimited.
|
| + int MaxSwapsPending() const { return max_swaps_pending_; }
|
| + int NumSwapsPendingForTesting() const { return num_frames_pending_; }
|
|
|
| // This returns null for unthrottled frame-rate.
|
| base::TimeTicks NextTickTime();
|
| @@ -73,7 +77,7 @@ class CC_EXPORT FrameRateController {
|
|
|
| FrameRateControllerClient* client_;
|
| int num_frames_pending_;
|
| - int max_frames_pending_;
|
| + int max_swaps_pending_;
|
| scoped_refptr<TimeSource> time_source_;
|
| scoped_ptr<FrameRateControllerTimeSourceAdapter> time_source_client_adapter_;
|
| bool active_;
|
| @@ -83,6 +87,7 @@ class CC_EXPORT FrameRateController {
|
| base::WeakPtrFactory<FrameRateController> weak_factory_;
|
| Thread* thread_;
|
|
|
| + private:
|
| DISALLOW_COPY_AND_ASSIGN(FrameRateController);
|
| };
|
|
|
|
|