summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2016-09-02 12:17:01 -0500
committerDerek Foreman <derekf@osg.samsung.com>2016-09-07 22:37:12 -0500
commitac32901aef5f9dc7fb72ec6b4012558d07623f13 (patch)
tree4ebd54c862d33b4b05f96ee09a337480e438af54
parent8cc6e1373a296c558c181eec36ff213845831ece (diff)
downloadefl-ac32901aef5f9dc7fb72ec6b4012558d07623f13.tar.gz
Add busy status to ecore_drm2_fb
We've been tracking this in the outbuf code, but that logic is going to be moved into ecore_evas_drm to use the new ticking paradigm.
-rw-r--r--src/lib/ecore_drm2/Ecore_Drm2.h23
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_fb.c12
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_private.h1
3 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 3de799933b..ce9340f901 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -779,6 +779,29 @@ EAPI void ecore_drm2_fb_dirty(Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned
*/
EAPI int ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output, void *data);
+/**
+ * Return the Ecore_Drm2_Fb's busy status
+ *
+ * @param fb
+ *
+ * @return The busy status
+ *
+ * @ingroup Ecore_Drm2_Fb_Group
+ * @since 1.19
+ */
+EAPI Eina_Bool ecore_drm2_fb_busy_get(Ecore_Drm2_Fb *fb);
+
+/**
+ * Change the Ecore_Drm2_Fb's busy status
+ *
+ * @param fb
+ * @param busy The new busy status
+ *
+ * @ingroup Ecore_Drm2_Fb_Group
+ * @since 1.19
+ */
+EAPI void ecore_drm2_fb_busy_set(Ecore_Drm2_Fb *fb, Eina_Bool busy);
+
# endif
#endif
diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c
index f91a477182..6ac0dde2e8 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -272,3 +272,15 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output, void *data)
output->current = fb;
return 0;
}
+
+EAPI Eina_Bool
+ecore_drm2_fb_busy_get(Ecore_Drm2_Fb *fb)
+{
+ return fb->busy;
+}
+
+EAPI void
+ecore_drm2_fb_busy_set(Ecore_Drm2_Fb *fb, Eina_Bool busy)
+{
+ fb->busy = busy;
+}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index e3a9c90850..05f7102418 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -94,6 +94,7 @@ struct _Ecore_Drm2_Fb
uint32_t format;
Eina_Bool gbm : 1;
+ Eina_Bool busy : 1;
void *mmap;
};