| 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..bfe3f0582912b907759ea39b25d24c8bb94c1a0d 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 {
|
| @@ -64,6 +66,8 @@ class CONTENT_EXPORT DelegatedFrameHostClient {
|
| virtual DelegatedFrameHost* GetDelegatedFrameHost() const = 0;
|
| virtual bool ShouldCreateResizeLock();
|
| virtual void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request);
|
| +
|
| + virtual void OnSendBeginFrame(const cc::BeginFrameArgs& args) = 0;
|
| };
|
|
|
| // The DelegatedFrameHost is used to host all of the RenderWidgetHostView state
|
| @@ -72,6 +76,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 +117,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 +150,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 +163,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 +321,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_sent_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_sent_begin_frame_args_;
|
| };
|
|
|
| } // namespace content
|
|
|