Chromium Code Reviews| Index: cc/scheduler/vsync_time_source.h |
| diff --git a/cc/scheduler/vsync_time_source.h b/cc/scheduler/vsync_time_source.h |
| index 910168f26bdc315c9d3b428bd0634d28b1539078..4cd044192c1181ba8bec188b7c5dc72d8b2d011a 100644 |
| --- a/cc/scheduler/vsync_time_source.h |
| +++ b/cc/scheduler/vsync_time_source.h |
| @@ -33,7 +33,16 @@ class VSyncProvider { |
| // external vsync signal. |
| class CC_EXPORT VSyncTimeSource : public TimeSource, public VSyncClient { |
| public: |
| - static scoped_refptr<VSyncTimeSource> Create(VSyncProvider* vsync_provider); |
| + enum NotificationDisableOption { |
| + // The notification will be lazily disabled in the callback to ensure |
| + // we get notified of the frame immediately following a quick on-off-on |
| + // transition. |
| + DISABLE_ON_NEXT_TICK, |
| + DISABLE_SYNCHRONOUSLY |
| + }; |
| + |
| + static scoped_refptr<VSyncTimeSource> Create( |
| + VSyncProvider* vsync_provider, NotificationDisableOption option); |
| // TimeSource implementation |
| virtual void SetClient(TimeSourceClient* client) OVERRIDE; |
| @@ -48,7 +57,8 @@ class CC_EXPORT VSyncTimeSource : public TimeSource, public VSyncClient { |
| virtual void DidVSync(base::TimeTicks frame_time) OVERRIDE; |
| protected: |
| - explicit VSyncTimeSource(VSyncProvider* vsync_provider); |
| + explicit VSyncTimeSource(VSyncProvider* vsync_provider, |
|
jamesr
2013/05/03 21:07:16
you don't need explicit for 2-arg c'tors
|
| + NotificationDisableOption option); |
| virtual ~VSyncTimeSource(); |
| base::TimeTicks last_tick_time_; |
| @@ -58,6 +68,7 @@ class CC_EXPORT VSyncTimeSource : public TimeSource, public VSyncClient { |
| VSyncProvider* vsync_provider_; |
| TimeSourceClient* client_; |
| + NotificationDisableOption disable_option_; |
| DISALLOW_COPY_AND_ASSIGN(VSyncTimeSource); |
| }; |