Index: components/viz/service/display_compositor/gpu_display_provider.cc |
diff --git a/components/viz/service/display_compositor/gpu_display_provider.cc b/components/viz/service/display_compositor/gpu_display_provider.cc |
index 8526c0101ef772507febf7d1dcce964b7e0ee52d..49f137692e0315c95ccd7cf4596dfba54d26bac9 100644 |
--- a/components/viz/service/display_compositor/gpu_display_provider.cc |
+++ b/components/viz/service/display_compositor/gpu_display_provider.cc |
@@ -17,23 +17,36 @@ |
#include "cc/surfaces/display_scheduler.h" |
#include "components/viz/service/display_compositor/display_output_surface.h" |
#include "components/viz/service/display_compositor/host_shared_bitmap_manager.h" |
+#include "components/viz/service/display_compositor/in_process_gpu_memory_buffer_manager.h" |
#include "gpu/command_buffer/client/shared_memory_limits.h" |
#include "gpu/command_buffer/service/image_factory.h" |
+#include "gpu/ipc/service/gpu_channel_manager.h" |
+#include "gpu/ipc/service/gpu_memory_buffer_factory.h" |
#if defined(USE_OZONE) |
#include "components/viz/service/display_compositor/display_output_surface_ozone.h" |
#include "gpu/command_buffer/client/gles2_interface.h" |
#endif |
+namespace { |
+ |
+gpu::ImageFactory* GetImageFactory(gpu::GpuChannelManager* channel_manager) { |
+ auto* buffer_factory = channel_manager->gpu_memory_buffer_factory(); |
+ return buffer_factory ? buffer_factory->AsImageFactory() : nullptr; |
+} |
+ |
+} // namespace |
+ |
namespace viz { |
GpuDisplayProvider::GpuDisplayProvider( |
scoped_refptr<gpu::InProcessCommandBuffer::Service> gpu_service, |
- std::unique_ptr<gpu::GpuMemoryBufferManager> gpu_memory_buffer_manager, |
- gpu::ImageFactory* image_factory) |
+ gpu::GpuChannelManager* gpu_channel_manager) |
: gpu_service_(std::move(gpu_service)), |
- gpu_memory_buffer_manager_(std::move(gpu_memory_buffer_manager)), |
- image_factory_(image_factory), |
+ gpu_memory_buffer_manager_( |
+ base::MakeUnique<InProcessGpuMemoryBufferManager>( |
+ gpu_channel_manager)), |
+ image_factory_(GetImageFactory(gpu_channel_manager)), |
task_runner_(base::ThreadTaskRunnerHandle::Get()) {} |
GpuDisplayProvider::~GpuDisplayProvider() = default; |