| Index: services/ui/gpu/gpu_main.h
|
| diff --git a/services/ui/gpu/gpu_main.h b/services/ui/gpu/gpu_main.h
|
| index b1dde2b2bc92369c8902e4e578b6c5d4ffd759b0..fd82f3db56ed958e7f877895ffe87eab49c3f147 100644
|
| --- a/services/ui/gpu/gpu_main.h
|
| +++ b/services/ui/gpu/gpu_main.h
|
| @@ -6,18 +6,23 @@
|
| #define SERVICES_UI_GPU_GPU_MAIN_H_
|
|
|
| #include "base/threading/thread.h"
|
| +#include "gpu/ipc/in_process_command_buffer.h"
|
| #include "gpu/ipc/service/gpu_init.h"
|
| #include "services/ui/gpu/interfaces/gpu_service_internal.mojom.h"
|
| +#include "services/ui/surfaces/display_compositor_factory.h"
|
| +#include "services/ui/surfaces/display_compositor_factory_delegate.h"
|
|
|
| namespace gpu {
|
| class GpuMemoryBufferFactory;
|
| +class ImageFactory;
|
| }
|
|
|
| namespace ui {
|
|
|
| class GpuServiceInternal;
|
|
|
| -class GpuMain : public gpu::GpuSandboxHelper {
|
| +class GpuMain : public gpu::GpuSandboxHelper,
|
| + public DisplayCompositorFactoryDelegate {
|
| public:
|
| GpuMain();
|
| ~GpuMain() override;
|
| @@ -25,12 +30,18 @@ class GpuMain : public gpu::GpuSandboxHelper {
|
| void OnStart();
|
| void Create(mojom::GpuServiceInternalRequest request);
|
|
|
| + void Create(cc::mojom::DisplayCompositorFactoryRequest request);
|
| +
|
| GpuServiceInternal* gpu_service() { return gpu_service_internal_.get(); }
|
|
|
| private:
|
| void InitOnGpuThread(
|
| scoped_refptr<base::SingleThreadTaskRunner> io_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> compositor_runner);
|
| + void InitOnCompositorThread(
|
| + gpu::ImageFactory* image_factory,
|
| + scoped_refptr<base::SingleThreadTaskRunner> compositor_runner,
|
| + cc::mojom::DisplayCompositorFactoryRequest request);
|
|
|
| void TearDownOnCompositorThread();
|
| void TearDownOnGpuThread();
|
| @@ -41,8 +52,22 @@ class GpuMain : public gpu::GpuSandboxHelper {
|
| bool EnsureSandboxInitialized(
|
| gpu::GpuWatchdogThread* watchdog_thread) override;
|
|
|
| + // DisplayCompositorFactoryDelegate implementation:
|
| + std::unique_ptr<gpu::GpuMemoryBufferManager> CreateGpuMemoryBufferManager()
|
| + override;
|
| +
|
| std::unique_ptr<gpu::GpuInit> gpu_init_;
|
| std::unique_ptr<GpuServiceInternal> gpu_service_internal_;
|
| +
|
| + // The message-pipe used by the DisplayCompositor to request gpu memory
|
| + // buffers.
|
| + mojom::GpuServiceInternalPtr gpu_internal_;
|
| +
|
| + // The InCommandCommandBuffer::Service used by the display compositor.
|
| + scoped_refptr<gpu::InProcessCommandBuffer::Service> gpu_command_service_;
|
| +
|
| + std::unique_ptr<DisplayCompositorFactory> display_compositor_factory_;
|
| +
|
| std::unique_ptr<gpu::GpuMemoryBufferFactory> gpu_memory_buffer_factory_;
|
|
|
| // The main thread for GpuService.
|
|
|