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 0c913e98cc95121118a6c5d422ec62706929c832..e104ed0015099356361aa5959d8ef58626f14ee0 100644 |
--- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc |
+++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc |
@@ -10,11 +10,11 @@ |
#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_surfaceless.h" |
-#include "ui/ozone/platform/drm/gpu/hardware_display_controller.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" |
@@ -22,19 +22,13 @@ |
namespace ui { |
-GbmSurfaceFactory::GbmSurfaceFactory() |
- : drm_device_manager_(nullptr), screen_manager_(nullptr) {} |
+GbmSurfaceFactory::GbmSurfaceFactory(DrmThread* drm_thread) |
+ : drm_thread_(drm_thread) {} |
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; |
-} |
- |
void GbmSurfaceFactory::RegisterSurface(gfx::AcceleratedWidget widget, |
GbmSurfaceless* surface) { |
widget_to_surface_map_.insert(std::make_pair(widget, surface)); |
@@ -102,8 +96,12 @@ scoped_ptr<SurfaceOzoneEGL> |
GbmSurfaceFactory::CreateSurfacelessEGLSurfaceForWidget( |
gfx::AcceleratedWidget widget) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- return make_scoped_ptr(new GbmSurfaceless(screen_manager_->GetWindow(widget), |
- drm_device_manager_, this)); |
+ scoped_ptr<DrmWindowProxy> window(drm_thread_->CreateWindowProxy(widget)); |
+ if (!window) |
+ return nullptr; |
+ |
+ return make_scoped_ptr( |
+ new GbmSurfaceless(window.Pass(), this, drm_thread_->device_manager())); |
} |
scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap( |
@@ -135,7 +133,7 @@ scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap( |
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 |