From: Seunghun Lee Date: Tue, 2 Jun 2015 07:17:38 +0000 (+0900) Subject: ecore-buffer: change the passing argument of tbm_surface_internal_create_with_bos... X-Git-Tag: submit/tizen/20150604.065932^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89cf7850d55a0d251fa0001b03c37242b7acf1b1;p=platform%2Fupstream%2Fefl.git 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 --- diff --git a/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c b/src/modules/ecore_buffer/tbm/ecore_buffer_tbm.c index 8f8abfb..4f747ac 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 e51d9ed..304e3ea 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 b3c0c54..83d1f45 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);