| 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
|
|
|