Chromium Code Reviews| Index: cc/scheduler/begin_frame_source.h |
| diff --git a/cc/scheduler/begin_frame_source.h b/cc/scheduler/begin_frame_source.h |
| index 299db8e31d9b36176ffc98c17092ccc251110fd3..8afeafa3d20d7d4e74f8b37dbe0dbd718479b445 100644 |
| --- a/cc/scheduler/begin_frame_source.h |
| +++ b/cc/scheduler/begin_frame_source.h |
| @@ -166,6 +166,44 @@ class CC_EXPORT BeginFrameSourceMixIn : public BeginFrameSource { |
| bool inside_as_value_into_; |
| }; |
| +class CC_EXPORT ProxyBeginFrameSource : public BeginFrameSource { |
|
mithro-old
2015/03/23 11:32:17
If I understand correctly, this just takes a messa
simonhong
2015/03/23 11:46:39
Yes, right.
|
| + public: |
| + class Delegate { |
| + public: |
| + virtual void SetChildrenNeedBeginFrames(bool needs_begin_frames) = 0; |
| + }; |
| + |
| + ProxyBeginFrameSource(); |
| + ~ProxyBeginFrameSource() override; |
| + |
| + // BeginFrameSource |
| + bool NeedsBeginFrames() const override; |
| + // SetNeedsBeginFrames() is not used for now. |
| + // Instead, turning BeginFrame on/off is controlled by Add/RemoveObserver. |
|
mithro-old
2015/03/23 11:32:17
I think this violates the BeginFrameSource interfa
simonhong
2015/03/23 11:46:39
This is special login for ProxyBeginFrameSource.
W
|
| + void SetNeedsBeginFrames(bool needs_begin_frames) override {} |
| + void DidFinishFrame(size_t remaining_frames) override {} |
| + void AddObserver(BeginFrameObserver* obs) override; |
| + void RemoveObserver(BeginFrameObserver* obs) override; |
| + void SetClientReady() override {} |
| + void AsValueInto(base::debug::TracedValue* dict) const override; |
| + |
| + void set_delegate(Delegate* delegate) { |
|
mithro-old
2015/03/23 11:32:17
Why is this set_delegate rather than SetDelegate?
simonhong
2015/03/23 11:46:39
As I know, this style is used for just get/set met
|
| + delegate_ = delegate; |
| + } |
| + |
| + // virtual for testing. |
| + virtual void BeginFrames(const BeginFrameArgs& args); |
| + |
| + private: |
| + Delegate* delegate_; // Not owned. |
| + // Used to send to any new BeginFrameObserver immediately. |
| + BeginFrameArgs missed_begin_frame_args_; |
| + ObserverList<BeginFrameObserver> observer_list_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ProxyBeginFrameSource); |
| +}; |
| + |
| + |
| // A frame source which calls BeginFrame (at the next possible time) as soon as |
| // remaining frames reaches zero. |
| class CC_EXPORT BackToBackBeginFrameSource : public BeginFrameSourceMixIn { |