| Index: services/ui/ws/server_window_compositor_frame_sink.h
|
| diff --git a/services/ui/ws/server_window_compositor_frame_sink.h b/services/ui/ws/server_window_compositor_frame_sink.h
|
| index aa46906306606b375e54126713b50b1d1742140d..4f9cad8821623fe4d97c6e9c218e1bfd239745fa 100644
|
| --- a/services/ui/ws/server_window_compositor_frame_sink.h
|
| +++ b/services/ui/ws/server_window_compositor_frame_sink.h
|
| @@ -10,6 +10,9 @@
|
| #include "base/macros.h"
|
| #include "cc/ipc/compositor_frame.mojom.h"
|
| #include "cc/ipc/mojo_compositor_frame_sink.mojom.h"
|
| +#include "cc/output/context_provider.h"
|
| +#include "cc/surfaces/display.h"
|
| +#include "cc/surfaces/display_client.h"
|
| #include "cc/surfaces/frame_sink_id.h"
|
| #include "cc/surfaces/surface_factory.h"
|
| #include "cc/surfaces/surface_factory_client.h"
|
| @@ -19,6 +22,10 @@
|
| #include "services/ui/public/interfaces/window_tree.mojom.h"
|
| #include "services/ui/ws/ids.h"
|
|
|
| +namespace gpu {
|
| +class GpuMemoryBufferManager;
|
| +}
|
| +
|
| namespace ui {
|
|
|
| class DisplayCompositor;
|
| @@ -31,11 +38,15 @@ class ServerWindowCompositorFrameSinkManager;
|
| // Server side representation of a WindowSurface.
|
| class ServerWindowCompositorFrameSink
|
| : public cc::mojom::MojoCompositorFrameSink,
|
| + public cc::DisplayClient,
|
| public cc::SurfaceFactoryClient {
|
| public:
|
| ServerWindowCompositorFrameSink(
|
| ServerWindowCompositorFrameSinkManager* manager,
|
| const cc::FrameSinkId& frame_sink_id,
|
| + gfx::AcceleratedWidget widget,
|
| + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| + scoped_refptr<cc::ContextProvider> context_provider,
|
| cc::mojom::MojoCompositorFrameSinkRequest request,
|
| cc::mojom::MojoCompositorFrameSinkClientPtr client);
|
|
|
| @@ -46,17 +57,29 @@ class ServerWindowCompositorFrameSink
|
| void SubmitCompositorFrame(cc::CompositorFrame frame) override;
|
|
|
| private:
|
| + void InitDisplay(gfx::AcceleratedWidget widget,
|
| + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| + scoped_refptr<cc::ContextProvider> context_provider);
|
| +
|
| void DidReceiveCompositorFrameAck();
|
|
|
| + // DisplayClient implementation.
|
| + void DisplayOutputSurfaceLost() override;
|
| + void DisplayWillDrawAndSwap(bool will_draw_and_swap,
|
| + const cc::RenderPassList& render_passes) override;
|
| + void DisplayDidDrawAndSwap() override;
|
| +
|
| // SurfaceFactoryClient implementation.
|
| void ReturnResources(const cc::ReturnedResourceArray& resources) override;
|
| void SetBeginFrameSource(cc::BeginFrameSource* begin_frame_source) override;
|
|
|
| const cc::FrameSinkId frame_sink_id_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
|
|
| ServerWindowCompositorFrameSinkManager* manager_; // Owns this.
|
|
|
| gfx::Size last_submitted_frame_size_;
|
| + std::unique_ptr<cc::Display> display_;
|
|
|
| cc::LocalFrameId local_frame_id_;
|
| cc::SurfaceIdAllocator surface_id_allocator_;
|
|
|