| Index: content/browser/compositor/delegated_frame_host.h
|
| diff --git a/content/browser/compositor/delegated_frame_host.h b/content/browser/compositor/delegated_frame_host.h
|
| index 5029fb3cc49e28ba9309cee103a7d8eec105fa09..2290fda651200b639cdc0c5b1f19ba02bbb188b8 100644
|
| --- a/content/browser/compositor/delegated_frame_host.h
|
| +++ b/content/browser/compositor/delegated_frame_host.h
|
| @@ -16,6 +16,7 @@
|
| #include "content/browser/renderer_host/render_widget_host_impl.h"
|
| #include "content/browser/renderer_host/render_widget_host_view_base.h"
|
| #include "content/public/browser/render_process_host.h"
|
| +#include "ui/base/compositor/compositor_begin_frame_observer.h"
|
| #include "ui/compositor/compositor.h"
|
| #include "ui/compositor/compositor_observer.h"
|
| #include "ui/compositor/compositor_vsync_manager.h"
|
| @@ -25,6 +26,7 @@
|
|
|
| namespace cc {
|
| class SurfaceFactory;
|
| +struct BeginFrameArgs;
|
| }
|
|
|
| namespace media {
|
| @@ -72,6 +74,7 @@ class CONTENT_EXPORT DelegatedFrameHostClient {
|
| // the ui::Compositor associated with its DelegatedFrameHostClient.
|
| class CONTENT_EXPORT DelegatedFrameHost
|
| : public ui::CompositorObserver,
|
| + public ui::CompositorBeginFrameObserver,
|
| public ui::CompositorVSyncManager::Observer,
|
| public ui::LayerOwnerDelegate,
|
| public ImageTransportFactoryObserver,
|
| @@ -112,6 +115,7 @@ class CONTENT_EXPORT DelegatedFrameHost
|
| scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber);
|
| void EndFrameSubscription();
|
| bool HasFrameSubscriber() const { return frame_subscriber_; }
|
| + void OnSetNeedsBeginFrames(bool needs_begin_frames);
|
|
|
| // Exposed for tests.
|
| cc::DelegatedFrameProvider* FrameProviderForTesting() const {
|
| @@ -144,6 +148,11 @@ class CONTENT_EXPORT DelegatedFrameHost
|
| void LockResources();
|
| void UnlockResources();
|
|
|
| + void StartObservingBeginFrames();
|
| + void StopObservingBeginFrames();
|
| +
|
| + void SetVSyncParams(base::TimeTicks timebase, base::TimeDelta interval);
|
| +
|
| // Overridden from ui::CompositorObserver:
|
| void OnCompositingDidCommit(ui::Compositor* compositor) override;
|
| void OnCompositingStarted(ui::Compositor* compositor,
|
| @@ -152,6 +161,9 @@ class CONTENT_EXPORT DelegatedFrameHost
|
| void OnCompositingAborted(ui::Compositor* compositor) override;
|
| void OnCompositingLockStateChanged(ui::Compositor* compositor) override;
|
|
|
| + // Overridden from ui::CompositorBeginFrameObserver:
|
| + void OnSendBeginFrame(const cc::BeginFrameArgs& args) override;
|
| +
|
| // Overridden from ui::CompositorVSyncManager::Observer:
|
| void OnUpdateVSyncParameters(base::TimeTicks timebase,
|
| base::TimeDelta interval) override;
|
| @@ -307,6 +319,17 @@ class CONTENT_EXPORT DelegatedFrameHost
|
| yuv_readback_pipeline_;
|
|
|
| scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_;
|
| +
|
| + // True when unified BeginFrame scheduing is used.
|
| + bool begin_frame_scheduling_enabled_;
|
| +
|
| + // True when RenderWidget needs a BeginFrame.
|
| + bool needs_begin_frames_;
|
| +
|
| + // Pass |last_begin_frame_args_| to compositor when |this| is added as a
|
| + // CompositorBeginFrameObserver. With this, Compositor can determine whether
|
| + // latest BeginFrameArgs can be used immediately or not.
|
| + cc::BeginFrameArgs last_begin_frame_args_;
|
| };
|
|
|
| } // namespace content
|
|
|