Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CC_SURFACES_PRIMARY_BEGIN_FRAME_SOURCE_H_ | |
| 6 #define CC_SURFACES_PRIMARY_BEGIN_FRAME_SOURCE_H_ | |
| 7 | |
| 8 #include "cc/scheduler/begin_frame_source.h" | |
| 9 #include "cc/surfaces/frame_sink_observer.h" | |
| 10 | |
| 11 namespace cc { | |
| 12 | |
| 13 class FrameSinkManager; | |
| 14 | |
| 15 // PrimaryBeginFrameSource echos the first BeginFrameSource in the system. | |
| 16 // If the first source goes away then it will echo the new first | |
| 17 // BeginFrameSource. | |
| 18 class PrimaryBeginFrameSource : public BeginFrameSource, | |
| 19 public BeginFrameObserver, | |
| 20 public ExternalBeginFrameSourceClient, | |
| 21 public FrameSinkObserver { | |
| 22 public: | |
| 23 PrimaryBeginFrameSource(); | |
| 24 ~PrimaryBeginFrameSource() override; | |
| 25 | |
| 26 void Init(FrameSinkManager* frame_sink_manager); | |
| 27 | |
| 28 // BeginFrameObserver implementation. | |
| 29 void OnBeginFrame(const BeginFrameArgs& args) override; | |
| 30 const BeginFrameArgs& LastUsedBeginFrameArgs() const override; | |
| 31 void OnBeginFrameSourcePausedChanged(bool paused) override; | |
| 32 | |
| 33 // BeginFrameSource implementation. | |
| 34 void DidFinishFrame(BeginFrameObserver* obs, | |
| 35 const BeginFrameAck& ack) override; | |
| 36 void AddObserver(BeginFrameObserver* obs) override; | |
| 37 void RemoveObserver(BeginFrameObserver* obs) override; | |
| 38 bool IsThrottled() const override; | |
| 39 | |
| 40 // ExternalBeginFrameSourceClient implementation. | |
| 41 void OnNeedsBeginFrames(bool needs_begin_frames) override; | |
| 42 | |
| 43 // FrameSinkObserver implementation. | |
| 44 void OnBeginFrameSourceAdded(BeginFrameSource* begin_frame_source) override; | |
|
enne (OOO)
2017/05/24 17:55:17
This is a tiny design nit in this class, but I fee
Fady Samuel
2017/05/24 18:36:51
Done.
| |
| 45 void OnBeginFrameSourceRemoved(BeginFrameSource* begin_frame_source) override; | |
| 46 | |
| 47 private: | |
| 48 FrameSinkManager* frame_sink_manager_ = nullptr; | |
| 49 std::unique_ptr<ExternalBeginFrameSource> begin_frame_source_; | |
|
enne (OOO)
2017/05/24 17:55:17
Maybe just make this a member instead of a heap al
Fady Samuel
2017/05/24 18:36:51
Done.
| |
| 50 BeginFrameSource* primary_begin_frame_source_ = nullptr; | |
|
enne (OOO)
2017/05/24 17:55:17
There's a lot of "primary" verbage everywhere. Ma
Fady Samuel
2017/05/24 18:36:52
Done.
| |
| 51 | |
| 52 // The last begin frame args generated by the begin frame source. | |
| 53 BeginFrameArgs last_begin_frame_args_; | |
| 54 | |
| 55 bool needs_begin_frames_ = false; | |
| 56 | |
| 57 DISALLOW_COPY_AND_ASSIGN(PrimaryBeginFrameSource); | |
| 58 }; | |
| 59 | |
| 60 } // namespace cc | |
| 61 | |
| 62 #endif // CC_SURFACES_PRIMARY_BEGIN_FRAME_SOURCE_H_ | |
| OLD | NEW |