Index: ui/ozone/platform/dri/hardware_display_controller.h |
diff --git a/ui/ozone/platform/dri/hardware_display_controller.h b/ui/ozone/platform/dri/hardware_display_controller.h |
index 472dbd6696de6f7c6303a704780e0e6c89c0c3ab..cee71f8b0e389fd9991dd401a2f7ab055d1877b9 100644 |
--- a/ui/ozone/platform/dri/hardware_display_controller.h |
+++ b/ui/ozone/platform/dri/hardware_display_controller.h |
@@ -21,8 +21,26 @@ class Point; |
namespace ui { |
+class NativePixmap; |
class ScanoutSurface; |
+typedef std::vector<scoped_refptr<NativePixmap> > NativePixmapList; |
+ |
+struct OzoneOverlayPlane { |
+ OzoneOverlayPlane(ScanoutSurface* scanout, |
+ int z_order, |
+ gfx::OverlayTransform plane_transform, |
+ const gfx::Rect& display_bounds, |
+ const gfx::RectF& crop_rect); |
+ |
+ ScanoutSurface* scanout; |
+ int z_order; |
+ gfx::OverlayTransform plane_transform; |
+ gfx::Rect display_bounds; |
+ gfx::RectF crop_rect; |
+ int overlay_plane; |
+}; |
+ |
// The HDCOz will handle modesettings and scannout operations for hardware |
// devices. |
// |
@@ -114,7 +132,8 @@ class HardwareDisplayController |
// called again before the page flip occurrs. |
// |
// Returns true if the page flip was successfully registered, false otherwise. |
- bool SchedulePageFlip(); |
+ bool SchedulePageFlip(const std::vector<OzoneOverlayPlane>& overlays, |
+ NativePixmapList* references); |
// TODO(dnicoara) This should be on the MessageLoop when Ozone can have |
// BeginFrame can be triggered explicitly by Ozone. |
@@ -150,6 +169,11 @@ class HardwareDisplayController |
}; |
private: |
+ ScanoutSurface* GetPrimaryPlane( |
+ const std::vector<OzoneOverlayPlane>& overlays); |
+ |
+ NativePixmapList current_overlay_references_; |
+ |
// Object containing the connection to the graphics device and wraps the API |
// calls to control it. |
DriWrapper* drm_; |