| Index: services/ui/surfaces/display_compositor_factory.cc
|
| diff --git a/services/ui/surfaces/display_compositor_factory.cc b/services/ui/surfaces/display_compositor_factory.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bcaa17d5ac027d78de1b8bc4c37261d0a711e418
|
| --- /dev/null
|
| +++ b/services/ui/surfaces/display_compositor_factory.cc
|
| @@ -0,0 +1,44 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "services/ui/surfaces/display_compositor_factory.h"
|
| +
|
| +#include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
|
| +#include "gpu/ipc/gpu_in_process_thread_service.h"
|
| +#include "mojo/public/cpp/bindings/strong_binding.h"
|
| +#include "services/ui/surfaces/display_compositor_factory_delegate.h"
|
| +
|
| +namespace ui {
|
| +
|
| +DisplayCompositorFactory::DisplayCompositorFactory(
|
| + DisplayCompositorFactoryDelegate* delegate,
|
| + scoped_refptr<gpu::InProcessCommandBuffer::Service> gpu_command_service,
|
| + scoped_refptr<base::SingleThreadTaskRunner> compositor_runner,
|
| + gpu::ImageFactory* image_factory,
|
| + cc::mojom::DisplayCompositorFactoryRequest request)
|
| + : delegate_(delegate),
|
| + compositor_runner_(std::move(compositor_runner)),
|
| + image_factory_(image_factory),
|
| + gpu_command_service_(std::move(gpu_command_service)),
|
| + binding_(this, std::move(request)) {
|
| + DCHECK(compositor_runner_->BelongsToCurrentThread());
|
| +}
|
| +
|
| +DisplayCompositorFactory::~DisplayCompositorFactory() {
|
| + DCHECK(compositor_runner_->BelongsToCurrentThread());
|
| +}
|
| +
|
| +void DisplayCompositorFactory::CreateDisplayCompositor(
|
| + cc::mojom::DisplayCompositorRequest display_compositor_request,
|
| + cc::mojom::DisplayCompositorClientPtr display_compositor_client) {
|
| + DCHECK(compositor_runner_->BelongsToCurrentThread());
|
| + CHECK_EQ(nullptr, display_compositor_.get());
|
| +
|
| + display_compositor_ = base::MakeUnique<DisplayCompositor>(
|
| + gpu_command_service_, delegate_->CreateGpuMemoryBufferManager(),
|
| + image_factory_, std::move(display_compositor_request),
|
| + std::move(display_compositor_client));
|
| +}
|
| +
|
| +} // namespace ui
|
|
|