derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae9d2904c705c6e94d5acd0fe5f8f16b1c177e54
commit ae9d2904c705c6e94d5acd0fe5f8f16b1c177e54 Author: Derek Foreman <der...@osg.samsung.com> Date: Tue Dec 6 16:37:35 2016 -0600 test dmabuf pixmaps properly If we can't handle a dmabuf format we now properly tell the client instead of accepting it anyway and falling apart later. --- src/bin/e_pixmap.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index ab24c16..f46a994 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -1051,10 +1051,23 @@ e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...) E_API Eina_Bool e_pixmap_dmabuf_test(struct linux_dmabuf_buffer *dmabuf) { + Evas_Native_Surface ns; + Evas_Object *test; int size; void *data; - if (e_comp->gl) return EINA_TRUE; + if (e_comp->gl) + { + ns.type = EVAS_NATIVE_SURFACE_WL_DMABUF; + ns.version = EVAS_NATIVE_SURFACE_VERSION; + ns.data.wl_dmabuf.attr = &dmabuf->attributes; + ns.data.wl_dmabuf.resource = NULL; + test = evas_object_image_add(e_comp->evas); + evas_object_image_native_surface_set(test, &ns); + evas_object_del(test); + if (!ns.data.wl_dmabuf.attr) return EINA_FALSE; + return EINA_TRUE; + } /* TODO: Software rendering for multi-plane formats */ if (dmabuf->attributes.n_planes != 1) return EINA_FALSE; --