| Index: ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| diff --git a/ui/ozone/platform/dri/ozone_platform_gbm.cc b/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| index ade1511e9c7323aecdb076d5050c1a5c09f75826..2983115ae5cb2ab181468236cee12aceb3f34ecc 100644
|
| --- a/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| +++ b/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| @@ -23,6 +23,7 @@
|
| #include "ui/ozone/platform/dri/dri_window.h"
|
| #include "ui/ozone/platform/dri/dri_window_delegate_manager.h"
|
| #include "ui/ozone/platform/dri/dri_window_manager.h"
|
| +#include "ui/ozone/platform/dri/drm_device_generator.h"
|
| #include "ui/ozone/platform/dri/drm_device_manager.h"
|
| #include "ui/ozone/platform/dri/gbm_buffer.h"
|
| #include "ui/ozone/platform/dri/gbm_surface.h"
|
| @@ -76,6 +77,7 @@ class GbmBufferGenerator : public ScanoutBufferGenerator {
|
| GbmBufferGenerator() {}
|
| ~GbmBufferGenerator() override {}
|
|
|
| + // ScanoutBufferGenerator:
|
| scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DriWrapper>& drm,
|
| const gfx::Size& size) override {
|
| scoped_refptr<GbmWrapper> gbm(static_cast<GbmWrapper*>(drm.get()));
|
| @@ -87,6 +89,23 @@ class GbmBufferGenerator : public ScanoutBufferGenerator {
|
| DISALLOW_COPY_AND_ASSIGN(GbmBufferGenerator);
|
| };
|
|
|
| +class GbmDeviceGenerator : public DrmDeviceGenerator {
|
| + public:
|
| + GbmDeviceGenerator() {}
|
| + ~GbmDeviceGenerator() override {}
|
| +
|
| + // DrmDeviceGenerator:
|
| + scoped_refptr<DriWrapper> CreateDevice(const base::FilePath& path,
|
| + base::File file) override {
|
| + scoped_refptr<DriWrapper> drm = new GbmWrapper(path, file.Pass());
|
| + drm->Initialize();
|
| + return drm;
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(GbmDeviceGenerator);
|
| +};
|
| +
|
| class OzonePlatformGbm : public OzonePlatform {
|
| public:
|
| OzonePlatformGbm(bool use_surfaceless) : use_surfaceless_(use_surfaceless) {
|
| @@ -170,8 +189,9 @@ class OzonePlatformGbm : public OzonePlatform {
|
|
|
| surface_factory_ozone_->InitializeGpu(gbm_, drm_device_manager_.get(),
|
| window_delegate_manager_.get());
|
| - scoped_ptr<NativeDisplayDelegateDri> ndd(
|
| - new NativeDisplayDelegateDri(screen_manager_.get(), gbm_));
|
| + scoped_ptr<NativeDisplayDelegateDri> ndd(new NativeDisplayDelegateDri(
|
| + screen_manager_.get(), gbm_,
|
| + scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator())));
|
| gpu_platform_support_.reset(new DriGpuPlatformSupport(
|
| drm_device_manager_.get(), window_delegate_manager_.get(),
|
| screen_manager_.get(), ndd.Pass()));
|
|
|