summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeunghun Lee <shiin.lee@samsung.com>2015-06-02 16:17:38 +0900
committerSeunghun Lee <shiin.lee@samsung.com>2015-06-04 16:06:39 +0900
commit89cf7850d55a0d251fa0001b03c37242b7acf1b1 (patch)
tree9418ab08b58a6a54d1267fc1d69db6acc5106ef6
parentab72d18d542e4b926bf4b4b468dd9bb92e2ba066 (diff)
downloadefl-89cf7850d55a0d251fa0001b03c37242b7acf1b1.tar.gz
ecore-buffer: change the passing argument of tbm_surface_internal_create_with_bos() by updating API of libtbm.
This patch is for updating libtbm's API. Change-Id: I83673bc69ffde3216773ff5b344b08d91996617b
-rw-r--r--src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c27
-rw-r--r--src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c37
-rw-r--r--src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c19
3 files changed, 75 insertions, 8 deletions
diff --git a/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c b/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c
index 8f8abfb25b..4f747ac7d6 100644
--- a/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c
+++ b/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c
@@ -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;
}
diff --git a/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c b/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c
index e51d9edddb..304e3ea31b 100644
--- a/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c
+++ b/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c
@@ -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;
diff --git a/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c b/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c
index b3c0c545d1..83d1f45278 100644
--- a/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c
+++ b/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c
@@ -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);