Chromium Code Reviews| 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()); |
|
spang
2015/09/30 19:24:43
For this part, let's add a
bool GbmBuffer::Should
dnicoara
2015/10/01 14:36:15
I don't have a strong opinion on naming.
|
| + 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 |