Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(373)

Unified Diff: ui/ozone/platform/drm/gpu/gbm_surface_factory.cc

Issue 1311043016: Switch DRM platform to using a separate thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mv-drm-calls-on-thread2
Patch Set: update & fix clang Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/drm/gpu/gbm_surface_factory.h ('k') | ui/ozone/platform/drm/gpu/gbm_surfaceless.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 060f7be7a90044edaf2b249d583bcdef49796f1b..6c7f0b2ebfd1418e9eaf954d2dc12f61e05bd34e 100644
--- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
+++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
@@ -9,12 +9,11 @@
#include "base/files/file_path.h"
#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_proxy.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/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"
@@ -22,19 +21,13 @@
namespace ui {
-GbmSurfaceFactory::GbmSurfaceFactory()
- : drm_device_manager_(nullptr), screen_manager_(nullptr) {}
+GbmSurfaceFactory::GbmSurfaceFactory(DrmThreadProxy* 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) {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -106,7 +99,7 @@ GbmSurfaceFactory::CreateSurfacelessEGLSurfaceForWidget(
gfx::AcceleratedWidget widget) {
DCHECK(thread_checker_.CalledOnValidThread());
return make_scoped_ptr(
- new GbmSurfaceless(screen_manager_->GetWindow(widget), this));
+ new GbmSurfaceless(drm_thread_->CreateDrmWindowProxy(widget), this));
}
scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap(
@@ -120,11 +113,8 @@ scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap(
DCHECK(gfx::BufferUsage::SCANOUT == usage);
#endif
- scoped_refptr<GbmDevice> gbm = GetGbmDevice(widget);
- DCHECK(gbm);
-
scoped_refptr<GbmBuffer> buffer =
- GbmBuffer::CreateBuffer(gbm, format, size, usage);
+ drm_thread_->CreateBuffer(widget, size, format, usage);
if (!buffer.get())
return nullptr;
@@ -135,10 +125,4 @@ scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap(
return pixmap;
}
-scoped_refptr<GbmDevice> GbmSurfaceFactory::GetGbmDevice(
- gfx::AcceleratedWidget widget) {
- return static_cast<GbmDevice*>(
- drm_device_manager_->GetDrmDevice(widget).get());
-}
-
} // namespace ui
« no previous file with comments | « ui/ozone/platform/drm/gpu/gbm_surface_factory.h ('k') | ui/ozone/platform/drm/gpu/gbm_surfaceless.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698