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..8d4d26bce1097ad376bfb43a3e62e99319974e9f 100644 |
--- a/ui/ozone/platform/dri/hardware_display_controller.h |
+++ b/ui/ozone/platform/dri/hardware_display_controller.h |
@@ -21,8 +21,30 @@ class Point; |
namespace ui { |
+class NativePixmap; |
class ScanoutSurface; |
+struct OzoneOverlayPlane { |
+ OzoneOverlayPlane(ScanoutSurface* scanout, |
+ int z_order, |
+ gfx::OverlayTransform plane_transform, |
+ const gfx::Rect& display_bounds, |
+ const gfx::RectF& crop_rect) |
+ : scanout(scanout), |
+ z_order(z_order), |
+ plane_transform(plane_transform), |
+ display_bounds(display_bounds), |
+ crop_rect(crop_rect), |
+ overlay_plane(0) {} |
+ |
+ 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 +136,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(std::vector<OzoneOverlayPlane>* overlays, |
+ std::vector<scoped_refptr<NativePixmap> >* references); |
// TODO(dnicoara) This should be on the MessageLoop when Ozone can have |
// BeginFrame can be triggered explicitly by Ozone. |
@@ -150,6 +173,12 @@ class HardwareDisplayController |
}; |
private: |
+ // Assign overlay IDs to each overlay in the list, returning the primary |
+ // plane's surface (z-index 0, or surface_.get()). |
+ ScanoutSurface* AssignOverlayPlanes(std::vector<OzoneOverlayPlane>* overlays); |
+ |
+ std::vector<scoped_refptr<NativePixmap> > current_overlay_references_; |
+ |
// Object containing the connection to the graphics device and wraps the API |
// calls to control it. |
DriWrapper* drm_; |