| Index: ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
|
| diff --git a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
|
| index c3952bddc6c3ead34a6e08b1b9e7cd2abb0ba722..4ba43f2ab9486b0bf8fdfbee025dd165efd8e1cf 100644
|
| --- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
|
| +++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
|
| @@ -10,12 +10,14 @@
|
| #include "third_party/khronos/EGL/egl.h"
|
| #include "ui/ozone/common/egl_util.h"
|
| #include "ui/ozone/platform/drm/gpu/drm_device_manager.h"
|
| -#include "ui/ozone/platform/drm/gpu/drm_window.h"
|
| +#include "ui/ozone/platform/drm/gpu/drm_thread.h"
|
| +#include "ui/ozone/platform/drm/gpu/drm_window_proxy.h"
|
| #include "ui/ozone/platform/drm/gpu/gbm_buffer.h"
|
| #include "ui/ozone/platform/drm/gpu/gbm_device.h"
|
| #include "ui/ozone/platform/drm/gpu/gbm_surface.h"
|
| #include "ui/ozone/platform/drm/gpu/gbm_surfaceless.h"
|
| #include "ui/ozone/platform/drm/gpu/hardware_display_controller.h"
|
| +#include "ui/ozone/platform/drm/gpu/proxy_helpers.h"
|
| #include "ui/ozone/platform/drm/gpu/screen_manager.h"
|
| #include "ui/ozone/public/native_pixmap.h"
|
| #include "ui/ozone/public/surface_ozone_canvas.h"
|
| @@ -23,21 +25,14 @@
|
|
|
| namespace ui {
|
|
|
| -GbmSurfaceFactory::GbmSurfaceFactory(bool allow_surfaceless)
|
| - : DrmSurfaceFactory(nullptr),
|
| - allow_surfaceless_(allow_surfaceless),
|
| - drm_device_manager_(nullptr) {}
|
| +GbmSurfaceFactory::GbmSurfaceFactory(bool allow_surfaceless,
|
| + DrmThread* drm_thread)
|
| + : DrmSurfaceFactory(drm_thread), allow_surfaceless_(allow_surfaceless) {}
|
|
|
| GbmSurfaceFactory::~GbmSurfaceFactory() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| }
|
|
|
| -void GbmSurfaceFactory::InitializeGpu(DrmDeviceManager* drm_device_manager,
|
| - ScreenManager* screen_manager) {
|
| - drm_device_manager_ = drm_device_manager;
|
| - screen_manager_ = screen_manager;
|
| -}
|
| -
|
| intptr_t GbmSurfaceFactory::GetNativeDisplay() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| return EGL_DEFAULT_DISPLAY;
|
| @@ -86,7 +81,7 @@ scoped_ptr<SurfaceOzoneEGL> GbmSurfaceFactory::CreateEGLSurfaceForWidget(
|
| DCHECK(gbm);
|
|
|
| scoped_ptr<GbmSurface> surface(
|
| - new GbmSurface(screen_manager_->GetWindow(widget), gbm));
|
| + new GbmSurface(drm_thread_->CreateWindowProxy(widget), gbm));
|
| if (!surface->Initialize())
|
| return nullptr;
|
|
|
| @@ -100,8 +95,8 @@ GbmSurfaceFactory::CreateSurfacelessEGLSurfaceForWidget(
|
| if (!allow_surfaceless_)
|
| return nullptr;
|
|
|
| - return make_scoped_ptr(new GbmSurfaceless(screen_manager_->GetWindow(widget),
|
| - drm_device_manager_));
|
| + return make_scoped_ptr(
|
| + new GbmSurfaceless(drm_thread_->CreateWindowProxy(widget)));
|
| }
|
|
|
| scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap(
|
| @@ -123,7 +118,7 @@ scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap(
|
| if (!buffer.get())
|
| return nullptr;
|
|
|
| - scoped_refptr<GbmPixmap> pixmap(new GbmPixmap(buffer, screen_manager_));
|
| + scoped_refptr<GbmPixmap> pixmap(new GbmPixmap(buffer, drm_thread_));
|
| if (!pixmap->Initialize())
|
| return nullptr;
|
|
|
| @@ -138,7 +133,7 @@ bool GbmSurfaceFactory::CanShowPrimaryPlaneAsOverlay() {
|
| scoped_refptr<GbmDevice> GbmSurfaceFactory::GetGbmDevice(
|
| gfx::AcceleratedWidget widget) {
|
| return static_cast<GbmDevice*>(
|
| - drm_device_manager_->GetDrmDevice(widget).get());
|
| + drm_thread_->device_manager()->GetDrmDevice(widget).get());
|
| }
|
|
|
| } // namespace ui
|
|
|