Chromium Code Reviews| Index: components/viz/client/client_compositor_frame_sink.h |
| diff --git a/components/viz/client/client_compositor_frame_sink.h b/components/viz/client/client_compositor_frame_sink.h |
| index 008b730264ab968aed9caee42e69c5f329b49078..f5fec20dd33db09a9aeed313fed38d4802652a4f 100644 |
| --- a/components/viz/client/client_compositor_frame_sink.h |
| +++ b/components/viz/client/client_compositor_frame_sink.h |
| @@ -16,6 +16,24 @@ |
| namespace viz { |
| +class LocalSurfaceIdProvider { |
|
Fady Samuel
2017/06/05 15:33:48
Make this a separate file?
Saman Sami
2017/06/05 15:49:22
Done.
|
| + public: |
| + virtual const cc::LocalSurfaceId& GetLocalSurfaceIdForFrame( |
| + const cc::CompositorFrame& frame) = 0; |
| +}; |
| + |
| +class DefaultLocalSurfaceIdProvider : public LocalSurfaceIdProvider { |
|
Fady Samuel
2017/06/05 15:33:48
Separate file?
Saman Sami
2017/06/05 15:49:22
I put in the same file as LocalSurfaceIdProvider.
|
| + public: |
| + const cc::LocalSurfaceId& GetLocalSurfaceIdForFrame( |
| + const cc::CompositorFrame& frame) override; |
| + |
| + private: |
| + cc::LocalSurfaceId local_surface_id_; |
| + gfx::Size surface_size_; |
| + float device_scale_factor_ = 0; |
| + cc::LocalSurfaceIdAllocator local_surface_id_allocator_; |
|
Fady Samuel
2017/06/05 15:33:48
DISALLOW_COPY_AND_ASSIGN..
Saman Sami
2017/06/05 15:49:22
Done.
|
| +}; |
| + |
| class ClientCompositorFrameSink |
| : public cc::CompositorFrameSink, |
| public cc::mojom::MojoCompositorFrameSinkClient, |
| @@ -30,6 +48,7 @@ class ClientCompositorFrameSink |
| synthetic_begin_frame_source, |
| cc::mojom::MojoCompositorFrameSinkPtrInfo compositor_frame_sink_info, |
| cc::mojom::MojoCompositorFrameSinkClientRequest client_request, |
| + std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider, |
| bool enable_surface_synchronization); |
| ClientCompositorFrameSink( |
| @@ -38,6 +57,7 @@ class ClientCompositorFrameSink |
| synthetic_begin_frame_source, |
| cc::mojom::MojoCompositorFrameSinkPtrInfo compositor_frame_sink_info, |
| cc::mojom::MojoCompositorFrameSinkClientRequest client_request, |
| + std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider, |
| bool enable_surface_synchronization); |
| ~ClientCompositorFrameSink() override; |
| @@ -50,9 +70,6 @@ class ClientCompositorFrameSink |
| void DidNotProduceFrame(const cc::BeginFrameAck& ack) override; |
| private: |
| - virtual bool ShouldAllocateNewLocalSurfaceId( |
| - const cc::CompositorFrame& frame); |
| - |
| // cc::mojom::MojoCompositorFrameSinkClient implementation: |
| void DidReceiveCompositorFrameAck( |
| const cc::ReturnedResourceArray& resources) override; |
| @@ -62,11 +79,8 @@ class ClientCompositorFrameSink |
| // cc::ExternalBeginFrameSourceClient implementation. |
| void OnNeedsBeginFrames(bool needs_begin_frames) override; |
| - gfx::Size surface_size_; |
| - float device_scale_factor_ = 0.f; |
| - |
| cc::LocalSurfaceId local_surface_id_; |
| - cc::LocalSurfaceIdAllocator id_allocator_; |
| + std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider_; |
| std::unique_ptr<cc::ExternalBeginFrameSource> begin_frame_source_; |
| std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source_; |
| cc::mojom::MojoCompositorFrameSinkPtrInfo compositor_frame_sink_info_; |