Index: ui/ozone/platform/drm/gpu/gbm_surfaceless.cc |
diff --git a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc |
index f4037ac2e0a0dfb1508165b4f979ab24919114a7..4dc870fb38b78a9c8aa338abd661ff44ce83d7a4 100644 |
--- a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc |
+++ b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc |
@@ -4,21 +4,20 @@ |
#include "ui/ozone/platform/drm/gpu/gbm_surfaceless.h" |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
#include "ui/ozone/platform/drm/gpu/drm_device.h" |
#include "ui/ozone/platform/drm/gpu/drm_device_manager.h" |
+#include "ui/ozone/platform/drm/gpu/drm_thread.h" |
#include "ui/ozone/platform/drm/gpu/drm_vsync_provider.h" |
#include "ui/ozone/platform/drm/gpu/drm_window.h" |
-#include "ui/ozone/platform/drm/gpu/gbm_buffer.h" |
-#include "ui/ozone/platform/drm/gpu/hardware_display_controller.h" |
+#include "ui/ozone/platform/drm/gpu/proxy_helpers.h" |
namespace ui { |
-GbmSurfaceless::GbmSurfaceless(DrmWindow* window, |
- DrmDeviceManager* drm_device_manager) |
- : window_(window), drm_device_manager_(drm_device_manager) { |
-} |
+GbmSurfaceless::GbmSurfaceless(gfx::AcceleratedWidget widget, |
+ DrmThread* drm_thread) |
+ : widget_(widget), |
+ drm_thread_(drm_thread), |
+ window_(drm_thread->GetWindow(widget_)) {} |
GbmSurfaceless::~GbmSurfaceless() { |
} |
@@ -39,27 +38,26 @@ bool GbmSurfaceless::OnSwapBuffers() { |
bool GbmSurfaceless::OnSwapBuffersAsync( |
const SwapCompletionCallback& callback) { |
- return window_->SchedulePageFlip(callback); |
+ drm_thread_->task_runner()->PostTask( |
+ FROM_HERE, base::Bind(&DrmWindow::SchedulePageFlip, window_, |
+ CreateSafeCallback(callback))); |
+ return true; |
} |
scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() { |
- return make_scoped_ptr(new DrmVSyncProvider(window_)); |
+ return make_scoped_ptr( |
+ new DrmVSyncProvider(drm_thread_->task_runner(), window_)); |
} |
bool GbmSurfaceless::IsUniversalDisplayLinkDevice() { |
- if (!drm_device_manager_) |
- return false; |
- scoped_refptr<DrmDevice> drm_primary = |
- drm_device_manager_->GetDrmDevice(gfx::kNullAcceleratedWidget); |
- DCHECK(drm_primary); |
- |
- HardwareDisplayController* controller = window_->GetController(); |
- if (!controller) |
+ DrmDeviceManager* device_manager = drm_thread_->device_manager(); |
+ scoped_refptr<DrmDevice> widget_device = |
+ device_manager->GetDrmDevice(widget_); |
+ if (!widget_device) |
return false; |
- scoped_refptr<DrmDevice> drm = controller->GetAllocationDrmDevice(); |
- DCHECK(drm); |
- return drm_primary != drm; |
+ return device_manager->GetDrmDevice(gfx::kNullAcceleratedWidget) != |
+ widget_device; |
} |
} // namespace ui |