software_generic: Improve dmabuf validity tests
Now that upper layers set load errors this can be less gruesome. Also, add some checks that were in E here where they belong.
This commit is contained in:
parent
b8165098dc
commit
81420d76e0
|
@ -1139,13 +1139,7 @@ eng_image_native_set(void *data EINA_UNUSED, void *image, void *native)
|
||||||
/* This is a probe for wl_dmabuf viability */
|
/* This is a probe for wl_dmabuf viability */
|
||||||
if (ns && ns->type == EVAS_NATIVE_SURFACE_WL_DMABUF &&
|
if (ns && ns->type == EVAS_NATIVE_SURFACE_WL_DMABUF &&
|
||||||
!ns->data.wl_dmabuf.resource)
|
!ns->data.wl_dmabuf.resource)
|
||||||
{
|
return _evas_native_dmabuf_surface_image_set(image, native);
|
||||||
struct dmabuf_attributes *attr;
|
|
||||||
|
|
||||||
attr = ns->data.wl_dmabuf.attr;
|
|
||||||
if (attr->version != EVAS_DMABUF_ATTRIBUTE_VERSION)
|
|
||||||
ns->data.wl_dmabuf.attr = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,30 @@ _evas_native_dmabuf_surface_image_set(void *image, void *native)
|
||||||
Evas_Native_Surface *ns = native;
|
Evas_Native_Surface *ns = native;
|
||||||
RGBA_Image *im = image;
|
RGBA_Image *im = image;
|
||||||
|
|
||||||
if (!im) return NULL;
|
if (!im)
|
||||||
|
{
|
||||||
|
if (ns && ns->type == EVAS_NATIVE_SURFACE_WL_DMABUF &&
|
||||||
|
!ns->data.wl_dmabuf.resource)
|
||||||
|
{
|
||||||
|
struct dmabuf_attributes *attr;
|
||||||
|
|
||||||
|
attr = ns->data.wl_dmabuf.attr;
|
||||||
|
if (attr->version != EVAS_DMABUF_ATTRIBUTE_VERSION)
|
||||||
|
return NULL;
|
||||||
|
if (attr->n_planes != 1)
|
||||||
|
return NULL;
|
||||||
|
if (attr->format != DRM_FORMAT_ARGB8888 &&
|
||||||
|
attr->format != DRM_FORMAT_XRGB8888)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return evas_cache_image_data(evas_common_image_cache_get(),
|
||||||
|
attr->width, attr->height,
|
||||||
|
NULL, 1,
|
||||||
|
EVAS_COLORSPACE_ARGB8888);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (ns)
|
if (ns)
|
||||||
{
|
{
|
||||||
struct dmabuf_attributes *a;
|
struct dmabuf_attributes *a;
|
||||||
|
|
Loading…
Reference in New Issue