ecore_drm2: Add query for pending pageflip
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 11 Aug 2017 19:48:41 +0000 (14:48 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 11 Aug 2017 22:11:12 +0000 (17:11 -0500)
We've been tracking this in ecore_evas, but ecore_evas isn't the only
caller, and it doesn't know about flips initiated by the evas engines.

src/lib/ecore_drm2/Ecore_Drm2.h
src/lib/ecore_drm2/ecore_drm2_outputs.c

index 031a3da..e1609ad 100644 (file)
@@ -1059,6 +1059,18 @@ EAPI Eina_Bool ecore_drm2_output_blanktime_get(Ecore_Drm2_Output *output, int se
 
 EAPI int ecore_drm2_device_fd_get(Ecore_Drm2_Device *device);
 
+/**
+ * Check if there's a pageflip in progress for an output
+ *
+ * Checks whether an output has submit a flip but not yet had
+ * a callback completion event for that flip yet.
+ *
+ * @param output
+ * @return Whether there's a flip in progress or not
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_drm2_output_pending_get(Ecore_Drm2_Output *output);
+
 # endif
 
 #endif
index 29e26c8..1f52953 100644 (file)
@@ -1637,3 +1637,13 @@ ecore_drm2_output_info_get(Ecore_Drm2_Output *output, int *x, int *y, int *w, in
    if (x) *x = output->x;
    if (y) *y = output->y;
 }
+
+EAPI Eina_Bool
+ecore_drm2_output_pending_get(Ecore_Drm2_Output *output)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
+
+   if (output->pending.fb) return EINA_TRUE;
+
+   return EINA_FALSE;
+}