summaryrefslogtreecommitdiffstats
path: root/ui/ozone/platform/drm/gpu/drm_window.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/ozone/platform/drm/gpu/drm_window.h')
-rw-r--r--ui/ozone/platform/drm/gpu/drm_window.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/ui/ozone/platform/drm/gpu/drm_window.h b/ui/ozone/platform/drm/gpu/drm_window.h
index f655bbb..74e1e53 100644
--- a/ui/ozone/platform/drm/gpu/drm_window.h
+++ b/ui/ozone/platform/drm/gpu/drm_window.h
@@ -12,6 +12,7 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/ozone/ozone_export.h"
+#include "ui/ozone/platform/drm/gpu/overlay_plane.h"
class SkBitmap;
@@ -73,6 +74,16 @@ class OZONE_EXPORT DrmWindow {
// Move the HW cursor to the specified location.
void MoveCursor(const gfx::Point& location);
+ // Queue overlay planes and page flips.
+ // If hardware display controller is available, forward the information
+ // immediately, otherwise queue up on the window and forward when the hardware
+ // is once again ready.
+ void QueueOverlayPlane(const OverlayPlane& plane);
+ bool SchedulePageFlip(bool is_sync, const base::Closure& callback);
+
+ // Returns the last buffer associated with this window.
+ const OverlayPlane* GetLastModesetBuffer();
+
private:
// Draw the last set cursor & update the cursor plane.
void ResetCursor(bool bitmap_only);
@@ -106,6 +117,12 @@ class OZONE_EXPORT DrmWindow {
int cursor_frame_;
int cursor_frame_delay_ms_;
+ // Planes and flips currently being queued in the absence of hardware display
+ // controller.
+ OverlayPlaneList pending_planes_;
+ OverlayPlaneList last_submitted_planes_;
+ bool last_swap_sync_;
+
DISALLOW_COPY_AND_ASSIGN(DrmWindow);
};