This patch is for updating libtbm's API.
Change-Id: I83673bc69ffde3216773ff5b344b08d91996617b
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;
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;
}
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)
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;
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;
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;
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;
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);