Index: content/browser/renderer_host/compositor_impl_android.h |
diff --git a/content/browser/renderer_host/compositor_impl_android.h b/content/browser/renderer_host/compositor_impl_android.h |
index 1530644a2d6733d44558a0d34a99ecdb79a4bbae..87aba9a9409c88b4f013040ce75a2964b22c3fce 100644 |
--- a/content/browser/renderer_host/compositor_impl_android.h |
+++ b/content/browser/renderer_host/compositor_impl_android.h |
@@ -33,6 +33,7 @@ |
namespace cc { |
class AnimationHost; |
+class BeginFrameSource; |
class Display; |
class Layer; |
class LayerTreeHost; |
@@ -53,10 +54,20 @@ |
public ui::UIResourceProvider, |
public ui::WindowAndroidCompositor { |
public: |
+ class VSyncObserver { |
+ public: |
+ virtual void OnVSync(base::TimeTicks timebase, |
+ base::TimeDelta interval) = 0; |
+ }; |
+ |
CompositorImpl(CompositorClient* client, gfx::NativeWindow root_window); |
~CompositorImpl() override; |
static bool IsInitialized(); |
+ |
+ void AddObserver(VSyncObserver* observer); |
+ void RemoveObserver(VSyncObserver* observer); |
+ void OnNeedsBeginFramesChange(bool needs_begin_frames); |
// ui::ResourceProvider implementation. |
cc::UIResourceId CreateUIResource(cc::UIResourceClient* client) override; |
@@ -102,6 +113,8 @@ |
void AttachLayerForReadback(scoped_refptr<cc::Layer> layer) override; |
void RequestCopyOfOutputOnRootLayer( |
std::unique_ptr<cc::CopyOutputRequest> request) override; |
+ void OnVSync(base::TimeTicks frame_time, |
+ base::TimeDelta vsync_period) override; |
void SetNeedsAnimate() override; |
cc::FrameSinkId GetFrameSinkId() override; |
@@ -134,10 +147,12 @@ |
scoped_refptr<cc::Layer> readback_layer_tree_; |
// Destruction order matters here: |
+ base::ObserverList<VSyncObserver, true> observer_list_; |
std::unique_ptr<cc::AnimationHost> animation_host_; |
std::unique_ptr<cc::LayerTreeHost> host_; |
ui::ResourceManagerImpl resource_manager_; |
+ std::unique_ptr<cc::BeginFrameSource> begin_frame_source_; |
std::unique_ptr<cc::Display> display_; |
gfx::Size size_; |
@@ -167,6 +182,7 @@ |
bool compositor_frame_sink_request_pending_; |
gpu::Capabilities gpu_capabilities_; |
+ bool needs_begin_frames_; |
base::WeakPtrFactory<CompositorImpl> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(CompositorImpl); |