e_plane: added e_plane_available_tbm_formats_get
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 4 Jul 2017 07:31:12 +0000 (16:31 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 5 Jul 2017 03:02:48 +0000 (12:02 +0900)
Change-Id: I799b3bb1cbb0afeb8a12c1997008257e90a3cb9b

src/bin/e_plane.c
src/bin/e_plane.h

index bb81b09f1c781acdbea70878b7ee5c6eb9292eab..7da5151629fcb5575afe9d2339d7de187704bd40 100644 (file)
@@ -681,6 +681,9 @@ e_plane_new(E_Output *output, int index)
    tdm_error tdm_err = TDM_ERROR_NONE;
    unsigned int buffer_flags = 0;
    int zpos;
+   const tbm_format *formats;
+   int count;
+   int i;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL);
 
@@ -735,6 +738,17 @@ e_plane_new(E_Output *output, int index)
    else
      plane->type = E_PLANE_TYPE_INVALID;
 
+   tdm_err = tdm_layer_get_available_formats(plane->tlayer, &formats, &count);
+   if (tdm_err != TDM_ERROR_NONE)
+     {
+        ERR("fail to get available formats");
+        E_FREE(plane);
+        return NULL;
+     }
+
+   for ( i = 0 ; i < count ; i++)
+     plane->available_formats = eina_list_append(plane->available_formats, &formats[i]);
+
    INF("E_PLANE: (%d) plane:%p name:%s zpos:%d capa:%s %s",
        index, plane, plane->name, plane->zpos,plane->is_primary?"primary":"", plane->reserved_memory?"reserved_memory":"");
 
@@ -1562,6 +1576,14 @@ e_plane_is_fb_target(E_Plane *plane)
    return EINA_FALSE;
 }
 
+EINTERN Eina_List *
+e_plane_available_tbm_formats_get(E_Plane *plane)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(plane, NULL);
+
+   return plane->available_formats;
+}
+
 EINTERN void
 e_plane_show_state(E_Plane *plane)
 {
index f951d76b5b93453586ac272ce0ab16fc63cff312..4a2a4980a910f227120893037f4dfc836a2f9c86 100644 (file)
@@ -81,6 +81,8 @@ struct _E_Plane
 
    Eina_Bool             skip_surface_set;
 
+   Eina_List            *available_formats;
+
    /* current display information */
    struct
    {
@@ -142,6 +144,7 @@ EINTERN Eina_Bool            e_plane_is_unset_try(E_Plane *plane);
 EINTERN void                 e_plane_unset_try_set(E_Plane *plane, Eina_Bool set);
 EINTERN Eina_Bool            e_plane_unset_commit_check(E_Plane *plane);
 EINTERN Eina_Bool            e_plane_fb_target_set(E_Plane *plane, Eina_Bool set);
+EINTERN Eina_List           *e_plane_available_tbm_formats_get(E_Plane *plane);
 
 E_API Eina_Bool              e_plane_type_set(E_Plane *plane, E_Plane_Type type);
 E_API E_Plane_Type           e_plane_type_get(E_Plane *plane);