ecore-buffer: change the passing argument of tbm_surface_internal_create_with_bos... 77/40477/1 submit/tizen/20150604.065932
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 2 Jun 2015 07:17:38 +0000 (16:17 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Thu, 4 Jun 2015 07:06:39 +0000 (16:06 +0900)
This patch is for updating libtbm's API.

Change-Id: I83673bc69ffde3216773ff5b344b08d91996617b

src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c
src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c
src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c

index 8f8abfb..4f747ac 100644 (file)
@@ -229,6 +229,8 @@ _ecore_buffer_tbm_buffer_import(Ecore_Buffer_Module_Data bmdata, int w, int h, E
    Ecore_Buffer_Module_Tbm_Data *bm = bmdata;
    Ecore_Buffer_Tbm_Data *buf;
    tbm_bo bo;
+   tbm_surface_info_s info;
+   int i, num_plane;
 
    if (type != EXPORT_TYPE_FD) return NULL;
    if (export_id < 1) return NULL;
@@ -244,15 +246,36 @@ _ecore_buffer_tbm_buffer_import(Ecore_Buffer_Module_Data bmdata, int w, int h, E
    buf->is_imported = EINA_TRUE;
 
    bo = tbm_bo_import_fd(bm->tbm_mgr, export_id);
-   buf->tbm_surface = tbm_surface_internal_create_with_bos(buf->w, buf->h, format, &bo, 1);
-   tbm_bo_unref(bo);
+   if (!bo)
+     {
+        free(buf);
+        return NULL;
+     }
 
+   num_plane = _buf_get_num_planes(format);
+   info.width = w;
+   info.height = h;
+   info.format = format;
+   info.bpp = _buf_get_bpp(format);
+   info.size = w * h * info.bpp;
+   info.num_planes = num_plane;
+   for ( i = 0 ; i < num_plane ; i++)
+   {
+      info.planes[i].size = w * h * info.bpp;
+      info.planes[i].stride = w * info.bpp;
+      info.planes[i].offset = 0;
+   }
+
+   buf->tbm_surface = tbm_surface_internal_create_with_bos(&info, &bo, 1);
    if (!buf->tbm_surface)
      {
+        tbm_bo_unref(bo);
         free(buf);
         return NULL;
      }
 
+   tbm_bo_unref(bo);
+
    return buf;
 }
 
index e51d9ed..304e3ea 100644 (file)
@@ -303,6 +303,8 @@ _ecore_buffer_x11_dri2_buffer_alloc(Ecore_Buffer_Module_Data bmdata, int width,
    int num_plane;
    int rw, rh, rcount;
    unsigned int attachment = DRI2BufferFrontLeft;
+   tbm_surface_info_s info;
+   int i;
 
    bpp = _buf_get_bpp(format);
    if (bpp != 32)
@@ -343,8 +345,20 @@ _ecore_buffer_x11_dri2_buffer_alloc(Ecore_Buffer_Module_Data bmdata, int width,
    if (!bo)
      goto on_error;
 
-   buf->tbm.surface =
-      tbm_surface_internal_create_with_bos(buf->w, buf->h, format, &bo, 1);
+   info.width = width;
+   info.height =  height;
+   info.format = format;
+   info.bpp = bpp;
+   info.size = width * bufs->pitch;
+   info.num_planes = num_plane;
+   for ( i = 0 ; i < num_plane ; i++)
+   {
+      info.planes[i].size = width * bufs->pitch;
+      info.planes[i].stride = bufs->pitch;
+      info.planes[i].offset = 0;
+   }
+
+   buf->tbm.surface = tbm_surface_internal_create_with_bos(&info, &bo, 1);
    if (!buf->tbm.surface)
      goto on_error;
 
@@ -433,6 +447,8 @@ _ecore_buffer_x11_dri2_buffer_import(Ecore_Buffer_Module_Data bmdata EINA_UNUSED
    tbm_bo bo = NULL;
    int rcount;
    unsigned int attachment = DRI2BufferFrontLeft;
+   tbm_surface_info_s info;
+   int num_plane,i;
 
    if (type != EXPORT_TYPE_ID)
      return NULL;
@@ -467,8 +483,21 @@ _ecore_buffer_x11_dri2_buffer_import(Ecore_Buffer_Module_Data bmdata EINA_UNUSED
    if (!bo)
      goto on_error;
 
-   buf->tbm.surface =
-      tbm_surface_internal_create_with_bos(buf->w, buf->h, format, &bo, 1);
+   num_plane = _buf_get_num_planes(format);
+   info.width = w;
+   info.height = h;
+   info.format = format;
+   info.bpp = _buf_get_bpp(format);
+   info.size = w * bufs->pitch;
+   info.num_planes = num_plane;
+   for ( i = 0 ; i < num_plane ; i++)
+   {
+      info.planes[i].size = w * bufs->pitch;
+      info.planes[i].stride = bufs->pitch;
+      info.planes[i].offset = 0;
+   }
+
+   buf->tbm.surface = tbm_surface_internal_create_with_bos(&info, &bo, 1);
    if (!buf->tbm.surface)
      goto on_error;
 
index b3c0c54..83d1f45 100644 (file)
@@ -491,6 +491,8 @@ _ecore_buffer_x11_dri3_buffer_import(Ecore_Buffer_Module_Data bmdata, int w, int
    Ecore_Buffer_Module_X11_Dri3_Data *bm = bmdata;
    Ecore_Buffer_X11_Dri3_Data *buf;
    tbm_bo bo;
+   tbm_surface_info_s info;
+   int i, num_plane;
 
    if (!bm)
      return NULL;
@@ -519,8 +521,21 @@ _ecore_buffer_x11_dri3_buffer_import(Ecore_Buffer_Module_Data bmdata, int w, int
         return NULL;
      }
 
-   buf->tbm_surface =
-      tbm_surface_internal_create_with_bos(buf->w, buf->h, format, &bo, 1);
+   num_plane = _buf_get_num_planes(format);
+   info.width = w;
+   info.height = h;
+   info.format = format;
+   info.bpp = _buf_get_bpp(format);
+   info.size = w * h * info.bpp;
+   info.num_planes = num_plane;
+   for ( i = 0 ; i < num_plane ; i++)
+   {
+      info.planes[i].size = w * h * info.bpp;
+      info.planes[i].stride = w * info.bpp;
+      info.planes[i].offset = 0;
+   }
+
+   buf->tbm_surface = tbm_surface_internal_create_with_bos(&info, &bo, 1);
    if (!buf->tbm_surface)
      {
         tbm_bo_unref(bo);