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 |