| 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 c04db48c8b97b786cdcf414ecb84f035288e8041..3060c377ec8674fe97a37a431905366ff0180c51 100644
|
| --- a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
|
| +++ b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
|
| @@ -4,39 +4,26 @@
|
|
|
| #include "ui/ozone/platform/drm/gpu/gbm_surfaceless.h"
|
|
|
| -#include "base/bind.h"
|
| -#include "base/thread_task_runner_handle.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_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/drm_window_proxy.h"
|
| #include "ui/ozone/platform/drm/gpu/gbm_surface_factory.h"
|
| -#include "ui/ozone/platform/drm/gpu/hardware_display_controller.h"
|
| +#include "ui/ozone/platform/drm/gpu/scanout_buffer.h"
|
|
|
| namespace ui {
|
|
|
| -namespace {
|
| -
|
| -void PostedSwapResult(const SwapCompletionCallback& callback,
|
| - gfx::SwapResult result) {
|
| - base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
|
| - base::Bind(callback, result));
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -GbmSurfaceless::GbmSurfaceless(DrmWindow* window,
|
| - DrmDeviceManager* drm_device_manager,
|
| - GbmSurfaceFactory* surface_manager)
|
| - : window_(window),
|
| - drm_device_manager_(drm_device_manager),
|
| - surface_manager_(surface_manager) {
|
| - surface_manager_->RegisterSurface(window_->GetAcceleratedWidget(), this);
|
| +GbmSurfaceless::GbmSurfaceless(scoped_ptr<DrmWindowProxy> window,
|
| + GbmSurfaceFactory* surface_manager,
|
| + DrmDeviceManager* device_manager)
|
| + : window_(window.Pass()),
|
| + surface_manager_(surface_manager),
|
| + device_manager_(device_manager) {
|
| + surface_manager_->RegisterSurface(window_->widget(), this);
|
| }
|
|
|
| GbmSurfaceless::~GbmSurfaceless() {
|
| - surface_manager_->UnregisterSurface(window_->GetAcceleratedWidget());
|
| + surface_manager_->UnregisterSurface(window_->widget());
|
| }
|
|
|
| void GbmSurfaceless::QueueOverlayPlane(const OverlayPlane& plane) {
|
| @@ -59,31 +46,23 @@ bool GbmSurfaceless::OnSwapBuffers() {
|
|
|
| bool GbmSurfaceless::OnSwapBuffersAsync(
|
| const SwapCompletionCallback& callback) {
|
| - // Wrap the callback and post the result such that everything using the
|
| - // callback doesn't need to worry about re-entrancy.
|
| - window_->SchedulePageFlip(planes_, base::Bind(&PostedSwapResult, callback));
|
| + window_->SchedulePageFlip(planes_, callback);
|
| planes_.clear();
|
| return true;
|
| }
|
|
|
| scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() {
|
| - return make_scoped_ptr(new DrmVSyncProvider(window_));
|
| + return make_scoped_ptr(new DrmVSyncProvider(window_.get()));
|
| }
|
|
|
| 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)
|
| + scoped_refptr<DrmDevice> widget_device =
|
| + device_manager_->GetDrmDevice(window_->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
|
|
|