e_plane: add skip_surface_set
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 27 Jun 2017 23:00:54 +0000 (08:00 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 5 Jul 2017 02:59:14 +0000 (11:59 +0900)
When the skip_surface_set is true,
e20 does not set/unset the tsurface to the layer.
Do not call the tdm functions below.
- tdm_layer_set_info
- the tdm_layer_set_buffer
- tdm_layer_unset_buffer

Change-Id: I7b6ba55e4c561e065a8857f3ff14ba004bc1f7e1

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

index 05261b0cd1871d19794310cdfb326ebe24c9dd69..c242271bf18b73e0a41cbba5d66d865ac2a00abc 100644 (file)
@@ -85,6 +85,9 @@ _e_plane_surface_unset(E_Plane *plane)
    tdm_layer *tlayer = plane->tlayer;
    tdm_error error;
 
+   /* skip the set the surface to the tdm layer */
+   if (plane->skip_surface_set) return EINA_TRUE;
+
    if (plane_trace_debug)
       ELOGF("E_PLANE", "Unset   Plane(%p) zpos(%d)", NULL, NULL, plane, plane->zpos);
 
@@ -220,6 +223,9 @@ _e_plane_surface_set(E_Plane *plane, tbm_surface_h tsurface)
    unsigned int aligned_width;
    int dst_x, dst_y, dst_w, dst_h;
 
+   /* skip the set the surface to the tdm layer */
+   if (plane->skip_surface_set) return EINA_TRUE;
+
    /* set layer when the layer infomation is different from the previous one */
    tbm_surface_get_info(tsurface, &surf_info);
 
@@ -640,6 +646,7 @@ e_plane_new(E_Output *output, int index)
    tdm_layer_get_zpos(tlayer, &zpos);
    plane->zpos = zpos;
    plane->output = output;
+   plane->skip_surface_set = EINA_FALSE;
 
    tdm_err = tdm_layer_get_buffer_flags(plane->tlayer, &buffer_flags);
    if (tdm_err == TDM_ERROR_NONE)
index 45de426f99c05b30fee258d3b55b07c358fb7018..47d0497dc7bb842f5cc97b83d67bc283e2970a85 100644 (file)
@@ -76,6 +76,8 @@ struct _E_Plane
 
    E_Plane_Role          role;
 
+   Eina_Bool             skip_surface_set;
+
    /* current display information */
    struct
    {