aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore_drm2
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-08-11 14:48:41 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-08-11 17:11:12 -0500
commiteec565cc0fe9eca6aea73fc8963f0ebbb2bbc154 (patch)
tree3133a39c55450cf2030713a9a3f49466dc1cc91b /src/lib/ecore_drm2
parentmakefile_evas: fix includes when openjpeg 1.5 and 2.0 are installed. (diff)
downloadefl-eec565cc0fe9eca6aea73fc8963f0ebbb2bbc154.tar.gz
ecore_drm2: Add query for pending pageflip
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.
Diffstat (limited to 'src/lib/ecore_drm2')
-rw-r--r--src/lib/ecore_drm2/Ecore_Drm2.h12
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c10
2 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 031a3dac88..e1609adac2 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -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
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index 29e26c80bc..1f52953ffb 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -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;
+}