[evas_tbmbuf] reset all tbm_buffer_info->age when changed total surface 30/115230/1
authorJoogab Yun <joogab.yun@samsung.com>
Fri, 17 Feb 2017 03:59:45 +0000 (12:59 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Fri, 17 Feb 2017 04:08:50 +0000 (13:08 +0900)
number

Change-Id: I2bd21c44dd417823eca90a81575c426bf3c62e5a

src/modules/evas/engines/wayland_shm/evas_engine.h
src/modules/evas/engines/wayland_shm/evas_tbmbuf.c

index 267e61f..df1cd34 100644 (file)
@@ -72,7 +72,7 @@ struct _Surface
         int  (*assign)(Surface *surface);
         void (*post)(Surface *surface, Eina_Rectangle *rects, unsigned int count);
    } funcs;
-   int frame_age;
+   unsigned int frame_age;
 };
 
 struct _Outbuf
index 3d6644a..c80ecb4 100644 (file)
@@ -391,7 +391,7 @@ _evas_tbmbuf_surface_assign(Surface *s)
    _wait_free_buffer(surface);
 
    // check num of tbm surface
-   int num_surface;
+   int num_surface, i;
    tbm_surface_h surfaces[5];
    sym_tbm_surface_queue_get_surfaces(surface->tbm_queue, surfaces, &num_surface);
 
@@ -439,8 +439,14 @@ _evas_tbmbuf_surface_assign(Surface *s)
    if (num_surface != tbuf_info->num_surface)
      {
        s->frame_age = 0;
-       tbuf_info->age = 0;
-       tbuf_info->num_surface = num_surface;
+
+       for(i=0; i<num_surface; i++) {
+           sym_tbm_surface_internal_get_user_data(surfaces[i], KEY_SURFACE_INFO, (void **)&tbuf_info);
+           if (tbuf_info) {
+               tbuf_info->age = 0;
+               tbuf_info->num_surface = num_surface;
+           }
+       }
      }
 
    if (!tbuf_info->age)