summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-04-27 15:45:51 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-05-04 16:51:18 -0500
commitfae4c6ce6207654dcdca6ed66b3ebaec83749c1b (patch)
tree0d1a61b593a37f97af3777742d2ede0597338569
parent0d0c5b48efd8f64c0df5f01ea3a9e59a1c33275b (diff)
downloadefl-fae4c6ce6207654dcdca6ed66b3ebaec83749c1b.tar.gz
ecore_drm2: Add ecore_drm2_plane_release to release planes
Opposite of plane assign.
-rw-r--r--src/lib/ecore_drm2/Ecore_Drm2.h10
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_plane.c10
2 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 6f1296d204..1448500d44 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -1009,6 +1009,16 @@ EAPI Ecore_Drm2_Fb *ecore_drm2_fb_dmabuf_import(int fd, int width, int height, i
EAPI Ecore_Drm2_Plane *ecore_drm2_plane_assign(Ecore_Drm2_Output *output, Ecore_Drm2_Fb *fb);
/**
+ * Remove a hardware plane from display
+ *
+ * @param plane
+ *
+ * @ingroup Ecore_Drm2_Plane_Group
+ * @since 1.20
+ */
+EAPI void ecore_drm2_plane_release(Ecore_Drm2_Plane *plane);
+
+/**
* Set plane destination values
*
* @param plane
diff --git a/src/lib/ecore_drm2/ecore_drm2_plane.c b/src/lib/ecore_drm2/ecore_drm2_plane.c
index 943104fd00..155c932bf5 100644
--- a/src/lib/ecore_drm2/ecore_drm2_plane.c
+++ b/src/lib/ecore_drm2/ecore_drm2_plane.c
@@ -113,6 +113,16 @@ out:
}
EAPI void
+ecore_drm2_plane_release(Ecore_Drm2_Plane *plane)
+{
+ EINA_SAFETY_ON_NULL_RETURN(plane);
+
+ plane->state->in_use = EINA_FALSE;
+ plane->output->planes = eina_list_remove(plane->output->planes, plane);
+ free(plane);
+}
+
+EAPI void
ecore_drm2_plane_destination_set(Ecore_Drm2_Plane *plane, int x, int y, int w, int h)
{
EINA_SAFETY_ON_NULL_RETURN(plane);