Index: ui/ozone/platform/dri/gbm_surface_factory.cc |
diff --git a/ui/ozone/platform/dri/gbm_surface_factory.cc b/ui/ozone/platform/dri/gbm_surface_factory.cc |
index 7e5dc34a11c5fcd0765149acef1210419a7f8390..6f1d18330fbcaddf668756ba128852c3ccb34ca2 100644 |
--- a/ui/ozone/platform/dri/gbm_surface_factory.cc |
+++ b/ui/ozone/platform/dri/gbm_surface_factory.cc |
@@ -123,6 +123,30 @@ scoped_refptr<ui::NativePixmap> GbmSurfaceFactory::CreateNativePixmap( |
return scoped_refptr<GbmPixmap>(new GbmPixmap(buffer)); |
} |
+bool GbmSurfaceFactory::ScheduleOverlayPlane( |
+ gfx::AcceleratedWidget widget, |
+ int plane_z_order, |
+ gfx::OverlayTransform plane_transform, |
+ scoped_refptr<NativePixmap> buffer, |
+ const gfx::Rect& display_bounds, |
+ const gfx::RectF& crop_rect) { |
+ scoped_refptr<GbmPixmap> pixmap = static_cast<GbmPixmap*>(buffer.get()); |
+ if (!pixmap) { |
+ LOG(ERROR) << "ScheduleOverlayPlane passed NULL buffer."; |
+ return false; |
+ } |
+ base::WeakPtr<HardwareDisplayController> hdc = |
+ screen_manager_->GetDisplayController(widget); |
+ if (!hdc) |
+ return true; |
+ hdc->QueueOverlayPlane(OverlayPlane(pixmap->buffer(), |
+ plane_z_order, |
+ plane_transform, |
+ display_bounds, |
+ crop_rect)); |
+ return true; |
+} |
+ |
bool GbmSurfaceFactory::CanShowPrimaryPlaneAsOverlay() { |
return allow_surfaceless_; |
} |